Skip to content

Commit d603bb2

Browse files
Revert "Prelim DRM debug support"
Signed-off-by: Daniel Chabrowski [email protected] Related-To: NEO-6591 This reverts commit 5e021be.
1 parent 82e3b10 commit d603bb2

File tree

16 files changed

+31
-665
lines changed

16 files changed

+31
-665
lines changed

opencl/test/unit_test/os_interface/linux/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ set(IGDRCL_SRCS_tests_os_interface_linux
1515
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream_mm_tests.cpp
1616
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream_tests_1.cpp
1717
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream_tests_2.cpp
18+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}drm_debug_tests.cpp
1819
${CMAKE_CURRENT_SOURCE_DIR}/drm_gem_close_worker_tests.cpp
1920
${CMAKE_CURRENT_SOURCE_DIR}/drm_mapper_tests.cpp
2021
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_tests.cpp
@@ -23,7 +24,7 @@ set(IGDRCL_SRCS_tests_os_interface_linux
2324
${CMAKE_CURRENT_SOURCE_DIR}/drm_residency_handler_tests.cpp
2425
${CMAKE_CURRENT_SOURCE_DIR}/drm_system_info_tests.cpp
2526
${CMAKE_CURRENT_SOURCE_DIR}/drm_tests.cpp
26-
${CMAKE_CURRENT_SOURCE_DIR}/drm_uuid_tests.cpp
27+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}drm_uuid_tests.cpp
2728
${CMAKE_CURRENT_SOURCE_DIR}/file_logger_linux_tests.cpp
2829
${CMAKE_CURRENT_SOURCE_DIR}/hw_info_config_linux_tests.cpp
2930
${CMAKE_CURRENT_SOURCE_DIR}/hw_info_config_linux_tests.h

shared/test/unit_test/os_interface/linux/drm_debug_tests.cpp renamed to opencl/test/unit_test/os_interface/linux/drm_debug_tests.cpp

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,18 @@
1212

1313
using namespace NEO;
1414

15-
struct DrmDebugTest : public ::testing::Test {
16-
public:
17-
void SetUp() override {
18-
executionEnvironment = std::make_unique<ExecutionEnvironment>();
19-
executionEnvironment->prepareRootDeviceEnvironments(1);
20-
executionEnvironment->rootDeviceEnvironments[0]->setHwInfo(NEO::defaultHwInfo.get());
21-
}
22-
23-
void TearDown() override {
24-
}
25-
26-
protected:
27-
std::unique_ptr<ExecutionEnvironment> executionEnvironment;
28-
};
29-
30-
TEST_F(DrmDebugTest, whenRegisterResourceClassesCalledThenTrueIsReturned) {
15+
TEST(DrmTest, whenRegisterResourceClassesCalledThenFalseIsReturned) {
16+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
17+
executionEnvironment->prepareRootDeviceEnvironments(1);
3118
DrmMock drmMock(*executionEnvironment->rootDeviceEnvironments[0]);
3219

3320
auto result = drmMock.registerResourceClasses();
34-
EXPECT_TRUE(result);
21+
EXPECT_FALSE(result);
3522
}
3623

37-
TEST_F(DrmDebugTest, whenRegisterResourceCalledThenImplementationIsEmpty) {
24+
TEST(DrmTest, whenRegisterResourceCalledThenImplementationIsEmpty) {
25+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
26+
executionEnvironment->prepareRootDeviceEnvironments(1);
3827
DrmMock drmMock(*executionEnvironment->rootDeviceEnvironments[0]);
3928

4029
auto handle = drmMock.registerResource(Drm::ResourceClass::MaxSize, nullptr, 0);
@@ -43,7 +32,9 @@ TEST_F(DrmDebugTest, whenRegisterResourceCalledThenImplementationIsEmpty) {
4332
EXPECT_EQ(0u, drmMock.ioctlCallsCount);
4433
}
4534

46-
TEST_F(DrmDebugTest, whenRegisterIsaCookieCalledThenImplementationIsEmpty) {
35+
TEST(DrmTest, whenRegisterIsaCookieCalledThenImplementationIsEmpty) {
36+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
37+
executionEnvironment->prepareRootDeviceEnvironments(1);
4738
DrmMock drmMock(*executionEnvironment->rootDeviceEnvironments[0]);
4839

4940
const uint32_t isaHandle = 2;
@@ -52,15 +43,19 @@ TEST_F(DrmDebugTest, whenRegisterIsaCookieCalledThenImplementationIsEmpty) {
5243
EXPECT_EQ(0u, drmMock.ioctlCallsCount);
5344
}
5445

55-
TEST_F(DrmDebugTest, whenCheckingContextDebugSupportThenNoIoctlIsCalled) {
46+
TEST(DrmTest, whenCheckingContextDebugSupportThenNoIoctlIsCalled) {
47+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
48+
executionEnvironment->prepareRootDeviceEnvironments(1);
5649
DrmMock drmMock(*executionEnvironment->rootDeviceEnvironments[0]);
5750
drmMock.checkContextDebugSupport();
5851
EXPECT_FALSE(drmMock.isContextDebugSupported());
5952

6053
EXPECT_EQ(0u, drmMock.ioctlCallsCount);
6154
}
6255

63-
TEST_F(DrmDebugTest, whenNotifyCommandQueueCreateDestroyAreCalledThenImplementationsAreEmpty) {
56+
TEST(DrmTest, whenNotifyCommandQueueCreateDestroyAreCalledThenImplementationsAreEmpty) {
57+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
58+
executionEnvironment->prepareRootDeviceEnvironments(1);
6459
DrmMock drmMock(*executionEnvironment->rootDeviceEnvironments[0]);
6560

6661
auto handle = drmMock.notifyFirstCommandQueueCreated();

opencl/test/unit_test/os_interface/linux/drm_uuid_tests.cpp

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*
66
*/
77

8-
#include "shared/source/os_interface/linux/drm_debug.h"
98
#include "shared/test/common/libult/linux/drm_mock.h"
109

1110
#include "gtest/gtest.h"
@@ -33,49 +32,8 @@ TEST(DrmUuidTest, GivenDrmWhenGeneratingElfUUIDThenCorrectStringsAreReturned) {
3332
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
3433
executionEnvironment->prepareRootDeviceEnvironments(1);
3534
DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]};
36-
37-
std::string elfClassUuid = classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::Elf)].second;
38-
std::string Uuid1stElfClass = elfClassUuid.substr(0, 18);
39-
4035
char data[] = "abc";
4136
auto uuid1 = drm.generateElfUUID(static_cast<const void *>(data));
42-
std::string Uuid1stElfBin1 = uuid1.substr(0, 18);
43-
EXPECT_STREQ(Uuid1stElfClass.c_str(), Uuid1stElfBin1.c_str());
44-
45-
char data2[] = "123";
46-
auto uuid2 = drm.generateElfUUID(static_cast<const void *>(data2));
47-
std::string Uuid1stElfBin2 = uuid2.substr(0, 18);
48-
EXPECT_STREQ(Uuid1stElfClass.c_str(), Uuid1stElfBin2.c_str());
49-
50-
auto uuid3 = drm.generateElfUUID(reinterpret_cast<const void *>(0xFFFFFFFFFFFFFFFF));
51-
std::string UuidElf = Uuid1stElfClass + "-ffff-ffffffffffff";
52-
EXPECT_STREQ(UuidElf.c_str(), uuid3.c_str());
53-
}
54-
55-
TEST(DrmUuidTest, whenResourceClassIsUsedToIndexClassNamesThenCorrectNamesAreReturned) {
56-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::Elf)].first, "I915_UUID_CLASS_ELF_BINARY");
57-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::Isa)].first, "I915_UUID_CLASS_ISA_BYTECODE");
58-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::ContextSaveArea)].first, "I915_UUID_L0_SIP_AREA");
59-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::ModuleHeapDebugArea)].first, "I915_UUID_L0_MODULE_AREA");
60-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::SbaTrackingBuffer)].first, "I915_UUID_L0_SBA_AREA");
61-
EXPECT_STREQ(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::L0ZebinModule)].first, "L0_ZEBIN_MODULE");
62-
}
6337

64-
TEST(DrmUuidTest, givenUuidStringWhenGettingClassIndexThenCorrectIndexForValidStringsIsReturned) {
65-
uint32_t index = 100;
66-
auto validUuid = DrmUuid::getClassUuidIndex(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::ContextSaveArea)].second, index);
67-
68-
EXPECT_TRUE(validUuid);
69-
EXPECT_EQ(static_cast<uint32_t>(Drm::ResourceClass::ContextSaveArea), index);
70-
71-
validUuid = DrmUuid::getClassUuidIndex(classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::ModuleHeapDebugArea)].second, index);
72-
73-
EXPECT_TRUE(validUuid);
74-
EXPECT_EQ(static_cast<uint32_t>(Drm::ResourceClass::ModuleHeapDebugArea), index);
75-
76-
index = 100;
77-
validUuid = DrmUuid::getClassUuidIndex("invalid", index);
78-
79-
EXPECT_FALSE(validUuid);
80-
EXPECT_EQ(100u, index);
38+
EXPECT_STREQ("00000000-0000-0000-0000-000000000001", uuid1.c_str());
8139
}

shared/source/os_interface/linux/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ set(NEO_CORE_OS_INTERFACE_LINUX
2424
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream.h
2525
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream.inl
2626
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream_bdw_and_later.inl
27-
${CMAKE_CURRENT_SOURCE_DIR}/drm_debug.cpp
28-
${CMAKE_CURRENT_SOURCE_DIR}/drm_debug.h
27+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}drm_debug.cpp
2928
${CMAKE_CURRENT_SOURCE_DIR}/drm_gem_close_worker.cpp
3029
${CMAKE_CURRENT_SOURCE_DIR}/drm_gem_close_worker.h
3130
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager.cpp

shared/source/os_interface/linux/drm_debug.cpp

Lines changed: 9 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,23 @@
55
*
66
*/
77

8-
#include "shared/source/os_interface/linux/drm_debug.h"
9-
10-
#include "shared/source/helpers/string.h"
11-
#include "shared/source/os_interface/linux/drm_neo.h"
12-
13-
#include <string>
14-
#include <utility>
8+
#include "drm_neo.h"
159

1610
namespace NEO {
1711

1812
bool Drm::registerResourceClasses() {
19-
for (auto classNameUUID : classNamesToUuid) {
20-
auto className = classNameUUID.first;
21-
auto uuid = classNameUUID.second;
22-
23-
const auto result = ioctlHelper->registerStringClassUuid(this, uuid, (uintptr_t)className, strnlen_s(className, 100));
24-
if (result.retVal != 0) {
25-
return false;
26-
}
27-
28-
classHandles.push_back(result.handle);
29-
}
30-
return true;
13+
return false;
3114
}
3215

3316
uint32_t Drm::registerResource(ResourceClass classType, const void *data, size_t size) {
34-
if (classHandles.size() < static_cast<uint32_t>(classType)) {
35-
return 0;
36-
}
37-
38-
std::string uuid;
39-
if (classType == NEO::Drm::ResourceClass::Elf) {
40-
uuid = generateElfUUID(data);
41-
} else {
42-
uuid = generateUUID();
43-
}
44-
45-
const auto uuidClass = classHandles[static_cast<uint32_t>(classType)];
46-
const auto ptr = size > 0 ? (uintptr_t)data : 0;
47-
const auto result = ioctlHelper->registerUuid(this, uuid, uuidClass, ptr, size);
48-
49-
PRINT_DEBUGGER_INFO_LOG("PRELIM_DRM_IOCTL_I915_UUID_REGISTER: classType = %d, uuid = %s, data = %p, handle = %lu, ret = %d\n", (int)classType, std::string(uuid, 36).c_str(), ptr, result.handle, result.retVal);
50-
DEBUG_BREAK_IF(result.retVal != 0);
51-
52-
return result.handle;
17+
return 0;
5318
}
5419

5520
uint32_t Drm::registerIsaCookie(uint32_t isaHandle) {
56-
auto uuid = generateUUID();
57-
58-
const auto result = ioctlHelper->registerUuid(this, uuid, isaHandle, 0, 0);
59-
60-
PRINT_DEBUGGER_INFO_LOG("PRELIM_DRM_IOCTL_I915_UUID_REGISTER: isa handle = %lu, uuid = %s, data = %p, handle = %lu, ret = %d\n", isaHandle, std::string(uuid, 36).c_str(), 0, result.handle, result.retVal);
61-
DEBUG_BREAK_IF(result.retVal != 0);
62-
63-
return result.handle;
21+
return 0;
6422
}
6523

6624
void Drm::unregisterResource(uint32_t handle) {
67-
PRINT_DEBUGGER_INFO_LOG("PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER: handle = %lu\n", handle);
68-
[[maybe_unused]] const auto ret = ioctlHelper->unregisterUuid(this, handle);
69-
DEBUG_BREAK_IF(ret != 0);
7025
}
7126

7227
std::string Drm::generateUUID() {
@@ -85,37 +40,12 @@ std::string Drm::generateUUID() {
8540
}
8641

8742
std::string Drm::generateElfUUID(const void *data) {
88-
std::string elf_class_uuid = classNamesToUuid[static_cast<uint32_t>(Drm::ResourceClass::Elf)].second;
89-
std::string UUID1st = elf_class_uuid.substr(0, 18);
90-
91-
const char uuidString[] = "%s-%04" SCNx64 "-%012" SCNx64;
92-
char buffer[36 + 1] = "00000000-0000-0000-0000-000000000000";
93-
94-
uint64_t parts[2] = {0, 0};
95-
parts[0] = reinterpret_cast<uintptr_t>(data) & 0xFFFFFFFFFFFF;
96-
parts[1] = (reinterpret_cast<uintptr_t>(data) & 0xFFFF000000000000) >> 48;
97-
snprintf(buffer, sizeof(buffer), uuidString, UUID1st.c_str(), parts[1], parts[0]);
98-
99-
return std::string(buffer, 36);
100-
}
101-
102-
void Drm::checkContextDebugSupport() {
103-
contextDebugSupported = ioctlHelper->isContextDebugSupported(this);
104-
}
105-
106-
void Drm::setContextDebugFlag(uint32_t drmContextId) {
107-
[[maybe_unused]] const auto retVal = ioctlHelper->setContextDebugFlag(this, drmContextId);
108-
DEBUG_BREAK_IF(retVal != 0 && contextDebugSupported);
43+
return generateUUID();
10944
}
11045

111-
uint32_t Drm::notifyFirstCommandQueueCreated() {
112-
const auto result = ioctlHelper->registerStringClassUuid(this, uuidL0CommandQueueHash, (uintptr_t)uuidL0CommandQueueName, strnlen_s(uuidL0CommandQueueName, 100));
113-
DEBUG_BREAK_IF(result.retVal);
114-
return result.handle;
115-
}
116-
117-
void Drm::notifyLastCommandQueueDestroyed(uint32_t handle) {
118-
unregisterResource(handle);
119-
}
46+
void Drm::checkContextDebugSupport() {}
47+
void Drm::setContextDebugFlag(uint32_t drmContextId) {}
48+
uint32_t Drm::notifyFirstCommandQueueCreated() { return 0; }
49+
void Drm::notifyLastCommandQueueDestroyed(uint32_t handle) {}
12050

12151
} // namespace NEO

shared/source/os_interface/linux/drm_debug.h

Lines changed: 0 additions & 69 deletions
This file was deleted.

shared/source/os_interface/linux/ioctl_helper.h

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,6 @@ struct VmBindParams {
6666
uint64_t extensions;
6767
};
6868

69-
struct UuidRegisterResult {
70-
uint32_t retVal;
71-
uint32_t handle;
72-
};
73-
7469
using MemRegionsVec = StackVec<MemoryClassInstance, 5>;
7570

7671
class IoctlHelper {
@@ -119,11 +114,6 @@ class IoctlHelper {
119114
virtual int vmUnbind(Drm *drm, const VmBindParams &vmBindParams) = 0;
120115
virtual bool getEuStallProperties(std::array<uint64_t, 10u> &properties, uint64_t dssBufferSize, uint64_t samplingRate, uint64_t pollPeriod, uint64_t engineInstance) = 0;
121116
virtual uint32_t getEuStallFdParameter() = 0;
122-
virtual UuidRegisterResult registerUuid(Drm *drm, const std::string &uuid, uint32_t uuidClass, uint64_t ptr, uint64_t size) = 0;
123-
virtual UuidRegisterResult registerStringClassUuid(Drm *drm, const std::string &uuid, uint64_t ptr, uint64_t size) = 0;
124-
virtual int unregisterUuid(Drm *drm, uint32_t handle) = 0;
125-
virtual bool isContextDebugSupported(Drm *drm) = 0;
126-
virtual int setContextDebugFlag(Drm *drm, uint32_t drmContextId) = 0;
127117
};
128118

129119
class IoctlHelperUpstream : public IoctlHelper {
@@ -169,11 +159,6 @@ class IoctlHelperUpstream : public IoctlHelper {
169159
int vmUnbind(Drm *drm, const VmBindParams &vmBindParams) override;
170160
bool getEuStallProperties(std::array<uint64_t, 10u> &properties, uint64_t dssBufferSize, uint64_t samplingRate, uint64_t pollPeriod, uint64_t engineInstance) override;
171161
uint32_t getEuStallFdParameter() override;
172-
UuidRegisterResult registerUuid(Drm *drm, const std::string &uuid, uint32_t uuidClass, uint64_t ptr, uint64_t size) override;
173-
UuidRegisterResult registerStringClassUuid(Drm *drm, const std::string &uuid, uint64_t ptr, uint64_t size) override;
174-
int unregisterUuid(Drm *drm, uint32_t handle) override;
175-
bool isContextDebugSupported(Drm *drm) override;
176-
int setContextDebugFlag(Drm *drm, uint32_t drmContextId) override;
177162
};
178163

179164
template <PRODUCT_FAMILY gfxProduct>
@@ -232,11 +217,6 @@ class IoctlHelperPrelim20 : public IoctlHelper {
232217
int vmUnbind(Drm *drm, const VmBindParams &vmBindParams) override;
233218
bool getEuStallProperties(std::array<uint64_t, 10u> &properties, uint64_t dssBufferSize, uint64_t samplingRate, uint64_t pollPeriod, uint64_t engineInstance) override;
234219
uint32_t getEuStallFdParameter() override;
235-
UuidRegisterResult registerUuid(Drm *drm, const std::string &uuid, uint32_t uuidClass, uint64_t ptr, uint64_t size) override;
236-
UuidRegisterResult registerStringClassUuid(Drm *drm, const std::string &uuid, uint64_t ptr, uint64_t size) override;
237-
int unregisterUuid(Drm *drm, uint32_t handle) override;
238-
bool isContextDebugSupported(Drm *drm) override;
239-
int setContextDebugFlag(Drm *drm, uint32_t drmContextId) override;
240220
};
241221

242222
} // namespace NEO

0 commit comments

Comments
 (0)