Detect GPU hangs in blocking enqueue handler calls

This change introduces detection of GPU hangs in blocking
calls to enqueueHandler() function. Moreover, usages of
this function template have been revised and adjusted to
check the exit code. Furthermore, enqueueBlit() and
dispatchBcsOrGpgpuEnqueue() functions returns value now.
ULTs have been added to cover new cases.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
Related-To: NEO-6681
This commit is contained in:
Patryk Wrobel
2022-03-21 11:08:43 +00:00
committed by Compute-Runtime-Automation
parent 05e17e90d8
commit e4d56cde21
46 changed files with 1163 additions and 286 deletions

View File

@ -350,14 +350,14 @@ class MockCommandQueueHw : public CommandQueueHw<GfxFamily> {
return BaseClass::waitUntilComplete(gpgpuTaskCountToWait, copyEnginesToWait, flushStampToWait, useQuickKmdSleep, cleanTemporaryAllocationList, skipWait);
}
WaitStatus waitForAllEngines(bool blockedQueue, PrintfHandler *printfHandler) override {
WaitStatus waitForAllEngines(bool blockedQueue, PrintfHandler *printfHandler, bool cleanTemporaryAllocationsList) override {
waitForAllEnginesCalledCount++;
if (waitForAllEnginesReturnValue.has_value()) {
return *waitForAllEnginesReturnValue;
}
return BaseClass::waitForAllEngines(blockedQueue, printfHandler);
return BaseClass::waitForAllEngines(blockedQueue, printfHandler, cleanTemporaryAllocationsList);
}
bool isCacheFlushForBcsRequired() const override {