From 06ea5944bd9390eab40b843cc012324e185cdaab Mon Sep 17 00:00:00 2001 From: Jitendra Sharma Date: Thu, 16 Jan 2025 16:13:34 +0000 Subject: [PATCH] fix: Retrieve tileIndex using gt_id Related-To: NEO-11104 Signed-off-by: Jitendra Sharma --- .../tools/source/debug/linux/xe/debug_session.cpp | 5 ++--- .../debug/linux/xe/test_debug_api_linux_xe.cpp | 4 ++-- .../os_interface/linux/xe/eudebug/eudebug_wrappers.h | 11 +++++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/level_zero/tools/source/debug/linux/xe/debug_session.cpp b/level_zero/tools/source/debug/linux/xe/debug_session.cpp index 815f32df08..a20be54b8f 100644 --- a/level_zero/tools/source/debug/linux/xe/debug_session.cpp +++ b/level_zero/tools/source/debug/linux/xe/debug_session.cpp @@ -362,9 +362,8 @@ void DebugSessionLinuxXe::handleEvent(NEO::EuDebugEvent *event) { static_cast(execQueuePlacements->numPlacements)); UNRECOVERABLE_IF(execQueuePlacements->numPlacements == 0); - auto engine = reinterpret_cast(&(execQueuePlacements->instances[0])); - NEO::EngineClassInstance engineClassInstance = {engine->engineClass, engine->engineInstance}; - auto tileIndex = DrmHelper::getEngineTileIndex(connectedDevice, engineClassInstance); + auto engine = reinterpret_cast(&(execQueuePlacements->instances[0])); + auto tileIndex = engine->gtId; auto &vmToTile = clientHandleToConnection[execQueuePlacements->clientHandle]->vmToTile; if (vmToTile.find(execQueuePlacements->vmHandle) != vmToTile.end()) { diff --git a/level_zero/tools/test/unit_tests/sources/debug/linux/xe/test_debug_api_linux_xe.cpp b/level_zero/tools/test/unit_tests/sources/debug/linux/xe/test_debug_api_linux_xe.cpp index 9f8bfeceec..bba42b70ec 100644 --- a/level_zero/tools/test/unit_tests/sources/debug/linux/xe/test_debug_api_linux_xe.cpp +++ b/level_zero/tools/test/unit_tests/sources/debug/linux/xe/test_debug_api_linux_xe.cpp @@ -2871,7 +2871,7 @@ TEST_F(DebugApiLinuxTestXe, GivenExecQueuePlacementEventWhenHandlingThenVmToTile EXPECT_NE(session->clientHandleToConnection[client1.clientHandle]->vmToTile.end(), session->clientHandleToConnection[client1.clientHandle]->vmToTile.find(vmHandle)); - EXPECT_EQ(0u, session->clientHandleToConnection[client1.clientHandle]->vmToTile[vmHandle]); + EXPECT_EQ(1u, session->clientHandleToConnection[client1.clientHandle]->vmToTile[vmHandle]); } TEST_F(DebugApiLinuxTestXe, GivenMultipleExecQueuePlacementEventForSameVmHandleWithDifferentTileIndexWhenHandlingThenErrorReported) { @@ -2909,7 +2909,7 @@ TEST_F(DebugApiLinuxTestXe, GivenMultipleExecQueuePlacementEventForSameVmHandleW auto engineClassInstance = reinterpret_cast(&(execQueuePlacements->instances[0])); engineClassInstance[0].engine_class = 0; engineClassInstance[0].engine_instance = 1; - engineClassInstance[0].gt_id = 1; + engineClassInstance[0].gt_id = 0; ::testing::internal::CaptureStderr(); session->handleEvent(&execQueuePlacements->base); diff --git a/shared/source/os_interface/linux/xe/eudebug/eudebug_wrappers.h b/shared/source/os_interface/linux/xe/eudebug/eudebug_wrappers.h index a25437c1f1..d67ed771b8 100644 --- a/shared/source/os_interface/linux/xe/eudebug/eudebug_wrappers.h +++ b/shared/source/os_interface/linux/xe/eudebug/eudebug_wrappers.h @@ -60,8 +60,8 @@ struct EuDebugEventExecQueuePlacements { uint64_t vmHandle; uint64_t execQueueHandle; uint64_t lrcHandle; - uint64_t numPlacements; - uint64_t pad; + uint32_t numPlacements; + uint32_t pad; uint64_t instances[]; }; @@ -160,6 +160,13 @@ struct DebugMetadataDestroy { uint32_t metadataId; }; +struct XeEngineClassInstance { + uint16_t engineClass; + uint16_t engineInstance; + uint16_t gtId; + uint16_t pad; +}; + struct XeUserExtension { uint64_t nextExtension; uint32_t name;