fix: xe debugger - set lrc and exec queue on page fault event

Related-to: GSD-11826

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This commit is contained in:
Brandon Yates
2025-10-16 00:03:06 +00:00
committed by Compute-Runtime-Automation
parent 621dbdbc37
commit 6a66c5df71
6 changed files with 93 additions and 2 deletions

View File

@@ -1117,6 +1117,10 @@ void DebugSessionLinux::handlePageFaultEvent(PageFaultEvent &pfEvent) {
}
}
for (auto &threadId : stoppedThreads) {
AttentionEventFields attention = {};
attention.lrcHandle = pfEvent.lrcHandle;
attention.contextHandle = pfEvent.execQueueHandle;
updateContextAndLrcHandlesForThreadsWithAttention(threadId, attention);
if (tileSessionsEnabled) {
addThreadToNewlyStoppedFromRaisedAttentionForTileSession(threadId, pfEvent.vmHandle, stateSaveAreaMemory.data(), pfEvent.tileIndex);
} else {

View File

@@ -302,6 +302,8 @@ struct DebugSessionLinux : DebugSessionImp {
uint64_t vmHandle;
uint32_t tileIndex;
uint64_t pageFaultAddress;
uint64_t execQueueHandle;
uint64_t lrcHandle;
uint32_t bitmaskSize;
uint8_t *bitmask;
};

View File

@@ -445,7 +445,7 @@ void DebugSessionLinuxi915::handleEvent(prelim_drm_i915_debug_event *event) {
if (vmHandle == invalidHandle) {
return;
}
PageFaultEvent pfEvent = {vmHandle, tileIndex, pf->page_fault_address, pf->bitmask_size, pf->bitmask};
PageFaultEvent pfEvent = {vmHandle, tileIndex, pf->page_fault_address, 0u, 0u, pf->bitmask_size, pf->bitmask};
handlePageFaultEvent(pfEvent);
} break;

View File

@@ -394,7 +394,7 @@ void DebugSessionLinuxXe::handleEvent(NEO::EuDebugEvent *event) {
if (vmHandle == invalidHandle) {
return;
}
PageFaultEvent pfEvent = {vmHandle, tileIndex, pf->pagefaultAddress, pf->bitmaskSize, pf->bitmask};
PageFaultEvent pfEvent = {vmHandle, tileIndex, pf->pagefaultAddress, pf->execQueueHandle, pf->lrcHandle, pf->bitmaskSize, pf->bitmask};
handlePageFaultEvent(pfEvent);
} else {
additionalEvents(event);