mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Add debug flag to disable gem close worker
Change-Id: If2453b2c168aa7086ad387f97ac2255291e08ae1 Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
2717fcae54
commit
447c3f5800
@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include "shared/source/command_stream/device_command_stream.h"
|
||||
#include "shared/test/unit_test/helpers/debug_manager_state_restore.h"
|
||||
|
||||
#include "opencl/source/command_stream/command_stream_receiver_with_aub_dump.h"
|
||||
#include "opencl/source/os_interface/linux/drm_command_stream.h"
|
||||
@ -17,7 +18,8 @@ CommandStreamReceiver *DeviceCommandStreamReceiver<GfxFamily>::create(bool withA
|
||||
if (withAubDump) {
|
||||
return new CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<GfxFamily>>("aubfile", executionEnvironment, rootDeviceIndex);
|
||||
} else {
|
||||
return new DrmCommandStreamReceiver<GfxFamily>(executionEnvironment, rootDeviceIndex);
|
||||
auto gemMode = DebugManager.flags.EnableGemCloseWorker.get() ? gemCloseWorkerMode::gemCloseWorkerActive : gemCloseWorkerMode::gemCloseWorkerInactive;
|
||||
return new DrmCommandStreamReceiver<GfxFamily>(executionEnvironment, rootDeviceIndex, gemMode);
|
||||
}
|
||||
};
|
||||
} // namespace NEO
|
||||
|
@ -62,6 +62,33 @@ HWTEST_F(DeviceCommandStreamLeaksTest, givenDefaultDrmCsrWhenOsInterfaceIsNullpt
|
||||
EXPECT_EQ(drmCsr->getOSInterface()->get()->getDrm(), executionEnvironment->rootDeviceEnvironments[0]->osInterface->get()->getDrm());
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceCommandStreamLeaksTest, givenDisabledGemCloseWorkerWhenCsrIsCreatedThenGemCloseWorkerInactiveModeIsSelected) {
|
||||
DebugManagerStateRestore restorer;
|
||||
DebugManager.flags.EnableGemCloseWorker.set(0u);
|
||||
|
||||
std::unique_ptr<CommandStreamReceiver> ptr(DeviceCommandStreamReceiver<FamilyType>::create(false, *executionEnvironment, 0));
|
||||
auto drmCsr = (DrmCommandStreamReceiver<FamilyType> *)ptr.get();
|
||||
|
||||
EXPECT_EQ(drmCsr->peekGemCloseWorkerOperationMode(), gemCloseWorkerMode::gemCloseWorkerInactive);
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceCommandStreamLeaksTest, givenEnabledGemCloseWorkerWhenCsrIsCreatedThenGemCloseWorkerActiveModeIsSelected) {
|
||||
DebugManagerStateRestore restorer;
|
||||
DebugManager.flags.EnableGemCloseWorker.set(1u);
|
||||
|
||||
std::unique_ptr<CommandStreamReceiver> ptr(DeviceCommandStreamReceiver<FamilyType>::create(false, *executionEnvironment, 0));
|
||||
auto drmCsr = (DrmCommandStreamReceiver<FamilyType> *)ptr.get();
|
||||
|
||||
EXPECT_EQ(drmCsr->peekGemCloseWorkerOperationMode(), gemCloseWorkerMode::gemCloseWorkerActive);
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceCommandStreamLeaksTest, givenDefaultGemCloseWorkerWhenCsrIsCreatedThenGemCloseWorkerActiveModeIsSelected) {
|
||||
std::unique_ptr<CommandStreamReceiver> ptr(DeviceCommandStreamReceiver<FamilyType>::create(false, *executionEnvironment, 0));
|
||||
auto drmCsr = (DrmCommandStreamReceiver<FamilyType> *)ptr.get();
|
||||
|
||||
EXPECT_EQ(drmCsr->peekGemCloseWorkerOperationMode(), gemCloseWorkerMode::gemCloseWorkerActive);
|
||||
}
|
||||
|
||||
using DeviceCommandStreamSetInternalUsageTests = DeviceCommandStreamLeaksTest;
|
||||
|
||||
HWTEST_F(DeviceCommandStreamSetInternalUsageTests, givenValidDrmCsrThenGemCloseWorkerOperationModeIsSetToInactiveWhenInternalUsageIsSet) {
|
||||
|
@ -2849,6 +2849,30 @@ TEST_F(DrmMemoryManagerBasic, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncD
|
||||
memoryManager.commonCleanup();
|
||||
}
|
||||
|
||||
TEST_F(DrmMemoryManagerBasic, givenDisabledGemCloseWorkerWhenMemoryManagerIsCreatedThenNoGemCloseWorker) {
|
||||
DebugManagerStateRestore dbgStateRestore;
|
||||
DebugManager.flags.EnableGemCloseWorker.set(0u);
|
||||
|
||||
TestedDrmMemoryManager memoryManager(true, true, true, executionEnvironment);
|
||||
|
||||
EXPECT_EQ(memoryManager.peekGemCloseWorker(), nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmMemoryManagerBasic, givenEnabledGemCloseWorkerWhenMemoryManagerIsCreatedThenGemCloseWorker) {
|
||||
DebugManagerStateRestore dbgStateRestore;
|
||||
DebugManager.flags.EnableGemCloseWorker.set(1u);
|
||||
|
||||
TestedDrmMemoryManager memoryManager(true, true, true, executionEnvironment);
|
||||
|
||||
EXPECT_NE(memoryManager.peekGemCloseWorker(), nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmMemoryManagerBasic, givenDefaultGemCloseWorkerWhenMemoryManagerIsCreatedThenGemCloseWorker) {
|
||||
MemoryManagerCreate<DrmMemoryManager> memoryManager(false, false, gemCloseWorkerMode::gemCloseWorkerActive, false, false, executionEnvironment);
|
||||
|
||||
EXPECT_NE(memoryManager.peekGemCloseWorker(), nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmMemoryManagerBasic, givenEnabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThenAsyncDeleterEnabledIsFalseAndDeleterIsNullptr) {
|
||||
DebugManagerStateRestore dbgStateRestore;
|
||||
DebugManager.flags.EnableDeferredDeleter.set(true);
|
||||
|
@ -107,6 +107,7 @@ EnableDeferredDeleter = 1
|
||||
EnableAsyncDestroyAllocations = 1
|
||||
EnableAsyncEventsHandler = 1
|
||||
EnableForcePin = 1
|
||||
EnableGemCloseWorker = -1
|
||||
EnableComputeWorkSizeND = 1
|
||||
EnableMultiRootDeviceContexts = 0
|
||||
EnableComputeWorkSizeSquared = 0
|
||||
|
@ -165,6 +165,7 @@ DECLARE_DEBUG_VARIABLE(bool, EnableFreeMemory, false, "Enable freeMemory in memo
|
||||
DECLARE_DEBUG_VARIABLE(bool, ForceSamplerLowFilteringPrecision, false, "Force Low Filtering Precision Sampler mode")
|
||||
DECLARE_DEBUG_VARIABLE(bool, UseBindlessBuffers, false, "Force compiler to use bindless buffer addressing instead of stateful one")
|
||||
DECLARE_DEBUG_VARIABLE(bool, UseBindlessImages, false, "Force compiler to use bindless image addressing instead of stateful one")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, EnableGemCloseWorker, -1, "Use asynchronous gem object closing, -1:default, 0:disable, 1:enable")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, EnableIntelVme, -1, "-1: default, 0: disabled, 1: Enables cl_intel_motion_estimation extension")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, EnableIntelAdvancedVme, -1, "-1: default, 0: disabled, 1: Enables cl_intel_advanced_motion_estimation extension")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, EnableBlitterOperationsSupport, -1, "-1: default, 0: disable, 1: enable")
|
||||
|
@ -44,6 +44,11 @@ DrmMemoryManager::DrmMemoryManager(gemCloseWorkerMode mode,
|
||||
localMemAllocs.emplace_back();
|
||||
}
|
||||
MemoryManager::virtualPaddingAvailable = true;
|
||||
|
||||
if (DebugManager.flags.EnableGemCloseWorker.get() != -1) {
|
||||
mode = DebugManager.flags.EnableGemCloseWorker.get() ? gemCloseWorkerMode::gemCloseWorkerActive : gemCloseWorkerMode::gemCloseWorkerInactive;
|
||||
}
|
||||
|
||||
if (mode != gemCloseWorkerMode::gemCloseWorkerInactive) {
|
||||
gemCloseWorker.reset(new DrmGemCloseWorker(*this));
|
||||
}
|
||||
|
Reference in New Issue
Block a user