refactor: Introduce debug flags to manipulate event's signal visibility

-Add AbortHostSyncOnNonHostVisibleEvent which abort when waiting for non
host visible event from host
-Add ForceHostSignalScope which forces add or clear of host scope to
event's signal scope

Related-To: NEO-13441

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2024-12-11 12:34:17 +00:00
committed by Compute-Runtime-Automation
parent eca3d5a677
commit f2725f217e
4 changed files with 53 additions and 0 deletions

View File

@@ -54,6 +54,14 @@ Event *Event::create(const EventDescriptor &eventDescriptor, Device *device, ze_
event->eventPoolOffset = eventDescriptor.index * event->totalEventSize;
event->hostAddressFromPool = ptrOffset(baseHostAddress, event->eventPoolOffset);
event->signalScope = eventDescriptor.signalScope;
if (NEO::debugManager.flags.ForceHostSignalScope.get() == 1) {
event->signalScope |= ZE_EVENT_SCOPE_FLAG_HOST;
}
if (NEO::debugManager.flags.ForceHostSignalScope.get() == 0) {
event->signalScope &= ~ZE_EVENT_SCOPE_FLAG_HOST;
}
event->waitScope = eventDescriptor.waitScope;
event->csrs.push_back(csr);
event->maxKernelCount = eventDescriptor.maxKernelCount;
@@ -642,6 +650,10 @@ ze_result_t EventImp<TagSizeT>::hostSynchronize(uint64_t timeout) {
ze_result_t ret = ZE_RESULT_NOT_READY;
if (NEO::debugManager.flags.AbortHostSyncOnNonHostVisibleEvent.get()) {
UNRECOVERABLE_IF(!this->isSignalScope(ZE_EVENT_SCOPE_FLAG_HOST));
}
if (this->csrs[0]->getType() == NEO::CommandStreamReceiverType::aub) {
this->csrs[0]->pollForAubCompletion();
return ZE_RESULT_SUCCESS;