diff --git a/level_zero/core/source/event/event_impl.inl b/level_zero/core/source/event/event_impl.inl index 134ead5680..05eb5b7fec 100644 --- a/level_zero/core/source/event/event_impl.inl +++ b/level_zero/core/source/event/event_impl.inl @@ -686,7 +686,7 @@ ze_result_t EventImp::hostSynchronize(uint64_t timeout) { if (device->getNEODevice()->getRootDeviceEnvironment().assertHandler.get()) { device->getNEODevice()->getRootDeviceEnvironment().assertHandler->printAssertAndAbort(); } - if (NEO::debugManager.flags.ForceGpuStatusCheckOnSuccessfulEventHostSynchronize.get() == 1) { + if (NEO::debugManager.flags.ForceGpuStatusCheckOnSuccessfulEventHostSynchronize.get() != 0) { const bool hangDetected = this->csrs[0]->isGpuHangDetected(); if (hangDetected) { return ZE_RESULT_ERROR_DEVICE_LOST; diff --git a/level_zero/core/test/unit_tests/sources/event/test_event.cpp b/level_zero/core/test/unit_tests/sources/event/test_event.cpp index 1ea998d20c..a378244e10 100644 --- a/level_zero/core/test/unit_tests/sources/event/test_event.cpp +++ b/level_zero/core/test/unit_tests/sources/event/test_event.cpp @@ -1627,8 +1627,6 @@ TEST_F(EventSynchronizeTest, GivenGpuHangWhenHostSynchronizeIsCalledThenDeviceLo } TEST_F(EventSynchronizeTest, GivenHangHappenedBeforePeriodicHangCheckAndForceGpuStatusCheckDuringHostSynchronizeThenHangIsDetected) { - NEO::debugManager.flags.ForceGpuStatusCheckOnSuccessfulEventHostSynchronize.set(1); - const auto csr = std::make_unique(*neoDevice->getExecutionEnvironment(), 0, neoDevice->getDeviceBitfield()); csr->isGpuHangDetectedReturnValue = true; @@ -1642,9 +1640,22 @@ TEST_F(EventSynchronizeTest, GivenHangHappenedBeforePeriodicHangCheckAndForceGpu } TEST_F(EventSynchronizeTest, GivenEventCompletedAndForceGpuStatusCheckThenHostSynchronizeReturnsSuccess) { - NEO::debugManager.flags.ForceGpuStatusCheckOnSuccessfulEventHostSynchronize.set(1); + const auto csr = std::make_unique(*neoDevice->getExecutionEnvironment(), 0, neoDevice->getDeviceBitfield()); + + event->csrs[0] = csr.get(); + uint32_t *hostAddr = static_cast(event->getHostAddress()); + *hostAddr = Event::STATE_SIGNALED; + + auto result = event->hostSynchronize(0); + + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST_F(EventSynchronizeTest, GivenHangHappenedBeforePeriodicHangCheckAndForceGpuStatusCheckDuringHostSynchronizeDisabledThenSuccessIsReturned) { + NEO::debugManager.flags.ForceGpuStatusCheckOnSuccessfulEventHostSynchronize.set(0); const auto csr = std::make_unique(*neoDevice->getExecutionEnvironment(), 0, neoDevice->getDeviceBitfield()); + csr->isGpuHangDetectedReturnValue = true; event->csrs[0] = csr.get(); uint32_t *hostAddr = static_cast(event->getHostAddress());