Detect GPU hangs in flushBcsTask()

This change introduces detection of GPU hangs in flushBcsTask()
function. The new code has been covered with ULTs.

Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This commit is contained in:
Patryk Wrobel
2022-05-05 16:52:25 +00:00
committed by Compute-Runtime-Automation
parent b4b1fb97bd
commit 9b2ad0c5df
31 changed files with 1291 additions and 794 deletions

View File

@ -348,6 +348,10 @@ class MockCommandQueueHw : public CommandQueueHw<GfxFamily> {
WaitStatus waitUntilComplete(uint32_t gpgpuTaskCountToWait, Range<CopyEngineState> copyEnginesToWait, FlushStamp flushStampToWait, bool useQuickKmdSleep, bool cleanTemporaryAllocationList, bool skipWait) override {
latestTaskCountWaited = gpgpuTaskCountToWait;
if (waitUntilCompleteReturnValue.has_value()) {
return *waitUntilCompleteReturnValue;
}
return BaseClass::waitUntilComplete(gpgpuTaskCountToWait, copyEnginesToWait, flushStampToWait, useQuickKmdSleep, cleanTemporaryAllocationList, skipWait);
}
@ -395,6 +399,7 @@ class MockCommandQueueHw : public CommandQueueHw<GfxFamily> {
std::atomic<uint32_t> latestTaskCountWaited{std::numeric_limits<uint32_t>::max()};
bool flushCalled = false;
std::optional<WaitStatus> waitForAllEnginesReturnValue{};
std::optional<WaitStatus> waitUntilCompleteReturnValue{};
int waitForAllEnginesCalledCount{0};
LinearStream *peekCommandStream() {