fix: explicitly report unhandled event exec queue placements

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2024-12-16 10:47:23 +00:00
committed by Compute-Runtime-Automation
parent 5eebde1231
commit 86ecbf3507
8 changed files with 22 additions and 1 deletions

View File

@@ -344,7 +344,8 @@ void DebugSessionLinuxXe::handleEvent(NEO::EuDebugEvent *event) {
vmBindOpData.vmBindOpMetadataVec.push_back(*vmBindOpMetadata);
vmBindOpData.pendingNumExtensions--;
handleVmBind(vmBindMap[vmBindSeqNo]);
} else if (type == euDebugInterface->getParamValue(NEO::EuDebugParam::eventTypePagefault)) {
} else if (type == euDebugInterface->getParamValue(NEO::EuDebugParam::eventTypePagefault) ||
type == euDebugInterface->getParamValue(NEO::EuDebugParam::eventTypeExecQueuePlacements)) {
PRINT_DEBUGGER_INFO_LOG("DRM_XE_EUDEBUG_IOCTL_READ_EVENT type: UNHANDLED %u flags = %u len = %lu\n", type, event->flags, event->len);
} else {
additionalEvents(event);

View File

@@ -2534,6 +2534,18 @@ TEST_F(DebugApiLinuxTestXe, GivenNotImplementedEventTypeWhenHandleEventThenDebug
output = testing::internal::GetCapturedStdout();
expectedOutput = std::string("DRM_XE_EUDEBUG_IOCTL_READ_EVENT type: UNHANDLED ") + std::to_string(pagefaultEvent.type) + " flags = 3 len = 2\n";
EXPECT_NE(std::string::npos, output.find(expectedOutput.c_str()));
NEO::EuDebugEvent execQueuePlacementsEvent{};
execQueuePlacementsEvent.len = 4;
execQueuePlacementsEvent.type = static_cast<uint16_t>(NEO::EuDebugParam::eventTypeExecQueuePlacements);
execQueuePlacementsEvent.flags = 5;
::testing::internal::CaptureStdout();
session->handleEvent(&execQueuePlacementsEvent);
output = testing::internal::GetCapturedStdout();
expectedOutput = std::string("DRM_XE_EUDEBUG_IOCTL_READ_EVENT type: UNHANDLED ") + std::to_string(execQueuePlacementsEvent.type) + " flags = 5 len = 4\n";
EXPECT_NE(std::string::npos, output.find(expectedOutput.c_str())) << output;
}
TEST(DebugSessionLinuxXeTest, GivenRootDebugSessionWhenCreateTileSessionCalledThenSessionIsNotCreated) {

View File

@@ -32,6 +32,8 @@ uint32_t EuDebugInterfacePrelim::getParamValue(EuDebugParam param) const {
return PRELIM_DRM_XE_EUDEBUG_EVENT_EU_ATTENTION;
case EuDebugParam::eventTypeExecQueue:
return PRELIM_DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE;
case EuDebugParam::eventTypeExecQueuePlacements:
return PRELIM_DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS;
case EuDebugParam::eventTypeMetadata:
return PRELIM_DRM_XE_EUDEBUG_EVENT_METADATA;
case EuDebugParam::eventTypeOpen:

View File

@@ -31,6 +31,8 @@ uint32_t EuDebugInterfaceUpstream::getParamValue(EuDebugParam param) const {
return DRM_XE_EUDEBUG_EVENT_EU_ATTENTION;
case EuDebugParam::eventTypeExecQueue:
return DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE;
case EuDebugParam::eventTypeExecQueuePlacements:
return DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS;
case EuDebugParam::eventTypeMetadata:
return DRM_XE_EUDEBUG_EVENT_METADATA;
case EuDebugParam::eventTypeOpen:

View File

@@ -163,6 +163,7 @@ enum class EuDebugParam {
eventBitStateChange,
eventTypeEuAttention = 20,
eventTypeExecQueue,
eventTypeExecQueuePlacements,
eventTypeMetadata,
eventTypeOpen,
eventTypePagefault,

View File

@@ -28,6 +28,7 @@ uint32_t MockEuDebugInterface::getParamValue(EuDebugParam param) const {
RETURN_AS_IS(EuDebugParam::execQueueSetPropertyEuDebug);
RETURN_AS_IS(EuDebugParam::eventTypeEuAttention);
RETURN_AS_IS(EuDebugParam::eventTypeExecQueue);
RETURN_AS_IS(EuDebugParam::eventTypeExecQueuePlacements);
RETURN_AS_IS(EuDebugParam::eventTypeMetadata);
RETURN_AS_IS(EuDebugParam::eventTypeOpen);
RETURN_AS_IS(EuDebugParam::eventTypePagefault);

View File

@@ -23,6 +23,7 @@ TEST(EuDebugInterfacePrelimTest, whenGettingParamValueThenCorrectValueIsReturned
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_STATE_CHANGE), euDebugInterface.getParamValue(EuDebugParam::eventBitStateChange));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_EU_ATTENTION), euDebugInterface.getParamValue(EuDebugParam::eventTypeEuAttention));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE), euDebugInterface.getParamValue(EuDebugParam::eventTypeExecQueue));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS), euDebugInterface.getParamValue(EuDebugParam::eventTypeExecQueuePlacements));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_METADATA), euDebugInterface.getParamValue(EuDebugParam::eventTypeMetadata));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_OPEN), euDebugInterface.getParamValue(EuDebugParam::eventTypeOpen));
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_PAGEFAULT), euDebugInterface.getParamValue(EuDebugParam::eventTypePagefault));

View File

@@ -24,6 +24,7 @@ TEST(EuDebugInterfaceUpstreamTest, whenGettingParamValueThenCorrectValueIsReturn
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_STATE_CHANGE), euDebugInterface.getParamValue(EuDebugParam::eventBitStateChange));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_EU_ATTENTION), euDebugInterface.getParamValue(EuDebugParam::eventTypeEuAttention));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE), euDebugInterface.getParamValue(EuDebugParam::eventTypeExecQueue));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS), euDebugInterface.getParamValue(EuDebugParam::eventTypeExecQueuePlacements));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_METADATA), euDebugInterface.getParamValue(EuDebugParam::eventTypeMetadata));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_OPEN), euDebugInterface.getParamValue(EuDebugParam::eventTypeOpen));
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_PAGEFAULT), euDebugInterface.getParamValue(EuDebugParam::eventTypePagefault));