SWDEV-332522 - ipcEvents Avoid deadlock b/w streamWait & Event

Using device write to set 0 to signal while streamWaitEvent is checking
the signal.
Use app in SWDEV-314307 to verify this fix
Requires vdi #668012 change to work

Change-Id: Ie329a29cfaeb5d144b92cda36773646f913ca73d
Этот коммит содержится в:
Ajay
2022-04-20 16:53:22 +00:00
коммит произвёл Ajay GunaShekar
родитель f1fb612774
Коммит 1abd0d6ecf
4 изменённых файлов: 48 добавлений и 30 удалений
+2 -1
Просмотреть файл
@@ -48,7 +48,7 @@ typedef struct ihipIpcEventShmem_s {
std::atomic<int> owners_process_id;
std::atomic<int> read_index;
std::atomic<int> write_index;
std::atomic<int> signal[IPC_SIGNALS_PER_EVENT];
uint32_t signal[IPC_SIGNALS_PER_EVENT];
} ihipIpcEventShmem_t;
class EventMarker : public amd::Marker {
@@ -186,6 +186,7 @@ class IPCEvent : public Event {
int owners = --ipc_evt_.ipc_shmem_->owners;
// Make sure event is synchronized
hipError_t status = synchronize();
status = ihipHostUnregister(&ipc_evt_.ipc_shmem_->signal);
if (!amd::Os::MemoryUnmapFile(ipc_evt_.ipc_shmem_, sizeof(hip::ihipIpcEventShmem_t))) {
// print hipErrorInvalidHandle;
}