mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 14:02:58 +08:00
feature: Add support for optional PF enable flag for exec queue create
Related-to: NEO-8306 Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
9419e702cc
commit
f7e63ba0d0
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2024 Intel Corporation
|
||||
# Copyright (C) 2024-2025 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
@@ -16,6 +16,7 @@ if(NEO_ENABLE_XE_EU_DEBUG_SUPPORT)
|
||||
if(NEO_ENABLE_XE_PRELIM_DETECTION)
|
||||
list(APPEND NEO_CORE_OS_INTERFACE_TESTS_LINUX_XE_EUDEBUG
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/eudebug_interface_prelim_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}eudebug_interface_prelim_tests_extra.cpp
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
* Copyright (C) 2024-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -35,6 +35,7 @@ TEST(EuDebugInterfacePrelimTest, whenGettingParamValueThenCorrectValueIsReturned
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_VM_BIND_UFENCE), euDebugInterface.getParamValue(EuDebugParam::eventTypeVmBindUfence));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_EVENT_VM_BIND_FLAG_UFENCE), euDebugInterface.getParamValue(EuDebugParam::eventVmBindFlagUfence));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EXEC_QUEUE_SET_PROPERTY_EUDEBUG), euDebugInterface.getParamValue(EuDebugParam::execQueueSetPropertyEuDebug));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EXEC_QUEUE_EUDEBUG_FLAG_ENABLE), euDebugInterface.getParamValue(EuDebugParam::execQueueSetPropertyValueEnable));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_IOCTL_ACK_EVENT), euDebugInterface.getParamValue(EuDebugParam::ioctlAckEvent));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_IOCTL_EU_CONTROL), euDebugInterface.getParamValue(EuDebugParam::ioctlEuControl));
|
||||
EXPECT_EQ(static_cast<uint32_t>(PRELIM_DRM_XE_EUDEBUG_IOCTL_READ_EVENT), euDebugInterface.getParamValue(EuDebugParam::ioctlReadEvent));
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/os_interface/linux/xe/eudebug/eudebug_interface_prelim.h"
|
||||
#include "shared/source/os_interface/linux/xe/xedrm_prelim.h"
|
||||
#include "shared/test/common/test_macros/test.h"
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
TEST(EuDebugInterfacePrelimTest, whenCheckingIfisExecQueuePageFaultEnableSupportedThenCorrectValueIsReturned) {
|
||||
EuDebugInterfacePrelim euDebugInterface{};
|
||||
EXPECT_FALSE(euDebugInterface.isExecQueuePageFaultEnableSupported());
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
* Copyright (C) 2024-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -36,6 +36,7 @@ TEST(EuDebugInterfaceUpstreamTest, whenGettingParamValueThenCorrectValueIsReturn
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_VM_BIND_UFENCE), euDebugInterface.getParamValue(EuDebugParam::eventTypeVmBindUfence));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_EVENT_VM_BIND_FLAG_UFENCE), euDebugInterface.getParamValue(EuDebugParam::eventVmBindFlagUfence));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EXEC_QUEUE_SET_PROPERTY_EUDEBUG), euDebugInterface.getParamValue(EuDebugParam::execQueueSetPropertyEuDebug));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EXEC_QUEUE_EUDEBUG_FLAG_ENABLE), euDebugInterface.getParamValue(EuDebugParam::execQueueSetPropertyValueEnable));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_IOCTL_ACK_EVENT), euDebugInterface.getParamValue(EuDebugParam::ioctlAckEvent));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_IOCTL_EU_CONTROL), euDebugInterface.getParamValue(EuDebugParam::ioctlEuControl));
|
||||
EXPECT_EQ(static_cast<uint32_t>(DRM_XE_EUDEBUG_IOCTL_READ_EVENT), euDebugInterface.getParamValue(EuDebugParam::ioctlReadEvent));
|
||||
|
||||
@@ -66,6 +66,21 @@ TEST_F(IoctlHelperXeTest, givenIoctlHelperXeWhenCallingGetEudebugExtPropertyThen
|
||||
EXPECT_EQ(xeIoctlHelper->getEudebugExtProperty(), static_cast<int>(EuDebugParam::execQueueSetPropertyEuDebug));
|
||||
}
|
||||
|
||||
TEST_F(IoctlHelperXeTest, givenIoctlHelperXeWhenCallingGetEudebugExtPropertyValueThenCorrectValueReturned) {
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
executionEnvironment->setDebuggingMode(DebuggingMode::offline);
|
||||
auto drm = DrmMockXeDebug::create(*executionEnvironment->rootDeviceEnvironments[0]);
|
||||
auto xeIoctlHelper = static_cast<MockIoctlHelperXeDebug *>(drm->ioctlHelper.get());
|
||||
uint64_t expectedValue = 0;
|
||||
auto mockEuDebugInterface = static_cast<NEO::MockEuDebugInterface *>(xeIoctlHelper->euDebugInterface.get());
|
||||
mockEuDebugInterface->pageFaultEnableSupported = true;
|
||||
expectedValue = static_cast<uint64_t>(EuDebugParam::execQueueSetPropertyValueEnable) | static_cast<uint64_t>(EuDebugParam::execQueueSetPropertyValuePageFaultEnable);
|
||||
EXPECT_EQ(xeIoctlHelper->getEudebugExtPropertyValue(), expectedValue);
|
||||
mockEuDebugInterface->pageFaultEnableSupported = false;
|
||||
expectedValue = static_cast<uint64_t>(EuDebugParam::execQueueSetPropertyValueEnable);
|
||||
EXPECT_EQ(xeIoctlHelper->getEudebugExtPropertyValue(), expectedValue);
|
||||
}
|
||||
|
||||
using IoctlHelperXeTestFixture = ::testing::Test;
|
||||
HWTEST_F(IoctlHelperXeTestFixture, GivenDebuggingDisabledWhenCreateDrmContextThenEuDebuggableContextIsNotRequested) {
|
||||
DebugManagerStateRestore restorer;
|
||||
@@ -139,7 +154,7 @@ HWTEST_F(IoctlHelperXeTestFixture, GivenDebuggingEnabledWhenCreateDrmContextThen
|
||||
EXPECT_EQ(ext.base.name, static_cast<uint32_t>(DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY));
|
||||
EXPECT_EQ(ext.base.next_extension, 0ULL);
|
||||
EXPECT_EQ(ext.property, static_cast<uint32_t>(EuDebugParam::execQueueSetPropertyEuDebug));
|
||||
EXPECT_EQ(ext.value, 1ULL);
|
||||
EXPECT_EQ(ext.value, static_cast<uint32_t>(EuDebugParam::execQueueSetPropertyValueEnable));
|
||||
}
|
||||
|
||||
HWTEST_F(IoctlHelperXeTestFixture, GivenContextCreatedForCopyEngineWhenCreateDrmContextThenEuDebuggableContextIsNotRequested) {
|
||||
|
||||
Reference in New Issue
Block a user