Skip to content

Commit a23f211

Browse files
Disable gem close worker on direct submission
Signed-off-by: Lukasz Jobczyk <[email protected]>
1 parent 35d73c4 commit a23f211

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

opencl/source/os_interface/linux/device_command_stream.inl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,16 @@ CommandStreamReceiver *DeviceCommandStreamReceiver<GfxFamily>::create(bool withA
2424
rootDeviceIndex,
2525
deviceBitfield);
2626
} else {
27-
auto gemMode = DebugManager.flags.EnableGemCloseWorker.get() ? gemCloseWorkerMode::gemCloseWorkerActive : gemCloseWorkerMode::gemCloseWorkerInactive;
27+
auto gemMode = gemCloseWorkerMode::gemCloseWorkerActive;
28+
29+
if (DebugManager.flags.EnableDirectSubmission.get() == 1) {
30+
gemMode = gemCloseWorkerMode::gemCloseWorkerInactive;
31+
}
32+
33+
if (DebugManager.flags.EnableGemCloseWorker.get() != -1) {
34+
gemMode = DebugManager.flags.EnableGemCloseWorker.get() ? gemCloseWorkerMode::gemCloseWorkerActive : gemCloseWorkerMode::gemCloseWorkerInactive;
35+
}
36+
2837
return new DrmCommandStreamReceiver<GfxFamily>(executionEnvironment,
2938
rootDeviceIndex,
3039
deviceBitfield,

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2020 Intel Corporation
2+
* Copyright (C) 2018-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -99,3 +99,13 @@ HWTEST_F(DeviceCommandStreamSetInternalUsageTests, givenValidDrmCsrThenGemCloseW
9999
drmCsr->initializeDefaultsForInternalEngine();
100100
EXPECT_EQ(drmCsr->peekGemCloseWorkerOperationMode(), gemCloseWorkerMode::gemCloseWorkerInactive);
101101
}
102+
103+
HWTEST_F(DeviceCommandStreamSetInternalUsageTests, givenEnableDirectSubmissionWhenCreateDrmCommandStreamReceiverThenGemCloseWorkerInactive) {
104+
DebugManagerStateRestore restorer;
105+
DebugManager.flags.EnableDirectSubmission.set(1);
106+
107+
std::unique_ptr<CommandStreamReceiver> ptr(DeviceCommandStreamReceiver<FamilyType>::create(false, *executionEnvironment, 0, 1));
108+
109+
auto drmCsr = (DrmCommandStreamReceiver<FamilyType> *)ptr.get();
110+
EXPECT_EQ(drmCsr->peekGemCloseWorkerOperationMode(), gemCloseWorkerMode::gemCloseWorkerInactive);
111+
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ typedef Test<DrmMemoryManagerFixture> DrmMemoryManagerTest;
6363
typedef Test<DrmMemoryManagerWithLocalMemoryFixture> DrmMemoryManagerWithLocalMemoryTest;
6464
typedef Test<DrmMemoryManagerFixtureWithoutQuietIoctlExpectation> DrmMemoryManagerWithExplicitExpectationsTest;
6565

66+
TEST_F(DrmMemoryManagerTest, givenEnableDirectSubmissionWhenCreateDrmMemoryManagerThenGemCloseWorkerInactive) {
67+
DebugManagerStateRestore dbgState;
68+
DebugManager.flags.EnableDirectSubmission.set(1);
69+
70+
TestedDrmMemoryManager memoryManager(false, false, false, *executionEnvironment);
71+
72+
EXPECT_EQ(memoryManager.peekGemCloseWorker(), nullptr);
73+
}
74+
6675
TEST_F(DrmMemoryManagerTest, givenDebugVariableWhenCreatingDrmMemoryManagerThenSetSupportForMultiStorageResources) {
6776
DebugManagerStateRestore dbgState;
6877

shared/source/os_interface/linux/drm_memory_manager.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ void DrmMemoryManager::initialize(gemCloseWorkerMode mode) {
5252
}
5353
MemoryManager::virtualPaddingAvailable = true;
5454

55+
if (DebugManager.flags.EnableDirectSubmission.get() == 1) {
56+
mode = gemCloseWorkerMode::gemCloseWorkerInactive;
57+
}
58+
5559
if (DebugManager.flags.EnableGemCloseWorker.get() != -1) {
5660
mode = DebugManager.flags.EnableGemCloseWorker.get() ? gemCloseWorkerMode::gemCloseWorkerActive : gemCloseWorkerMode::gemCloseWorkerInactive;
5761
}

0 commit comments

Comments
 (0)