diff --git a/shared/source/os_interface/linux/drm_neo.h b/shared/source/os_interface/linux/drm_neo.h index d7274c6476..cbe3882054 100644 --- a/shared/source/os_interface/linux/drm_neo.h +++ b/shared/source/os_interface/linux/drm_neo.h @@ -344,9 +344,9 @@ class Drm : public DriverModel { bool pageFaultSupported = false; bool completionFenceSupported = false; bool vmBindPatIndexProgrammingSupported = false; - bool disableScratch = true; + bool disableScratch = false; - uint32_t gpuFaultCheckThreshold = 10u; + uint32_t gpuFaultCheckThreshold = 0u; std::atomic gpuFaultCheckCounter{0u}; private: diff --git a/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp index 8321606d0a..c416e78d64 100644 --- a/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp @@ -306,7 +306,7 @@ TEST(DrmBufferObjectTestPrelim, givenDisableScratchPagesWhenCreateDrmVirtualMemo EXPECT_TRUE(drm.receivedGemVmControl.flags & DrmPrelimHelper::getDisableScratchVmCreateFlag()); } -TEST(DrmBufferObjectTestPrelim, givenDebuggingEnabledWithoutDisableScratchPagesFlagSetWhenCreateDrmVirtualMemoryThenDisableScratchPagesFlagIsSet) { +TEST(DrmBufferObjectTestPrelim, givenDebuggingEnabledWithoutDisableScratchPagesFlagSetWhenCreateDrmVirtualMemoryThenDisableScratchPagesFlagIsNotSet) { DebugManagerStateRestore restorer; debugManager.flags.UseTileMemoryBankInVirtualMemoryCreation.set(0u); @@ -317,7 +317,7 @@ TEST(DrmBufferObjectTestPrelim, givenDebuggingEnabledWithoutDisableScratchPagesF uint32_t vmId = 0; drm.createDrmVirtualMemory(vmId); - EXPECT_TRUE(drm.receivedGemVmControl.flags & DrmPrelimHelper::getDisableScratchVmCreateFlag()); + EXPECT_FALSE(drm.receivedGemVmControl.flags & DrmPrelimHelper::getDisableScratchVmCreateFlag()); } TEST(DrmBufferObjectTestPrelim, givenDisableScratchPagesAndDebuggingEnabledWhenCreateDrmVirtualMemoryThenEnvVariableIsPriority) { diff --git a/shared/test/unit_test/os_interface/linux/drm_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_tests.cpp index 2c5889737a..a029a495cc 100644 --- a/shared/test/unit_test/os_interface/linux/drm_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_tests.cpp @@ -1447,22 +1447,17 @@ TEST(DrmTest, givenDisableScratchPagesWhenSettingGpuFaultCheckThresholdThenThesh debugManager.flags.DisableScratchPages.set(false); debugManager.flags.GpuFaultCheckThreshold.set(threshold); DrmMockCheckPageFault drm1{*executionEnvironment->rootDeviceEnvironments[0]}; - EXPECT_EQ(10u, drm1.gpuFaultCheckThreshold); + EXPECT_EQ(0u, drm1.gpuFaultCheckThreshold); debugManager.flags.DisableScratchPages.set(true); debugManager.flags.GpuFaultCheckThreshold.set(-1); DrmMockCheckPageFault drm2{*executionEnvironment->rootDeviceEnvironments[0]}; - EXPECT_EQ(10u, drm2.gpuFaultCheckThreshold); + EXPECT_EQ(0u, drm2.gpuFaultCheckThreshold); debugManager.flags.DisableScratchPages.set(true); debugManager.flags.GpuFaultCheckThreshold.set(threshold); DrmMockCheckPageFault drm3{*executionEnvironment->rootDeviceEnvironments[0]}; EXPECT_EQ(threshold, drm3.gpuFaultCheckThreshold); - - debugManager.flags.DisableScratchPages.set(true); - debugManager.flags.GpuFaultCheckThreshold.set(0u); - DrmMockCheckPageFault drm4{*executionEnvironment->rootDeviceEnvironments[0]}; - EXPECT_EQ(0u, drm4.gpuFaultCheckThreshold); } struct MockDrmMemoryManagerCheckPageFault : public MockDrmMemoryManager { @@ -1516,41 +1511,6 @@ TEST(DrmTest, givenDisableScratchPagesSetWhenSettingGpuFaultCheckThresholdThenFa } } -TEST(DrmTest, givenDisableScratchPagesSetWhenSettingGpuFaultCheckThresholdToZeroThenFaultCheckingDoesNotHappen) { - constexpr unsigned int iteration = 20u; - ASSERT_NE(0u, iteration); - DebugManagerStateRestore restore; - debugManager.flags.DisableScratchPages.set(true); - debugManager.flags.GpuFaultCheckThreshold.set(0u); - - auto executionEnvironment = std::make_unique(); - auto rootDeviceEnvironment = executionEnvironment->rootDeviceEnvironments[0].get(); - rootDeviceEnvironment->setHwInfoAndInitHelpers(defaultHwInfo.get()); - rootDeviceEnvironment->osInterface = std::make_unique(); - rootDeviceEnvironment->osInterface->setDriverModel(std::unique_ptr(new DrmMock(*rootDeviceEnvironment))); - - auto memoryManager = new MockDrmMemoryManagerCheckPageFault(GemCloseWorkerMode::gemCloseWorkerInactive, false, false, *executionEnvironment); - executionEnvironment->memoryManager.reset(memoryManager); - auto &drm = *executionEnvironment->rootDeviceEnvironments[0]->osInterface->getDriverModel()->as(); - - uint32_t contextId{0}; - EngineDescriptor engineDescriptor{EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS, EngineUsage::regular})}; - - MockOsContextLinux mockOsContextLinux{drm, 0, contextId, engineDescriptor}; - mockOsContextLinux.drmContextIds.push_back(0); - - ResetStats resetStats{}; - resetStats.contextId = 0; - drm.resetStatsToReturn.push_back(resetStats); - - bool isGpuHangDetected{}; - for (auto i = 0u; i < iteration; i++) { - EXPECT_NO_THROW(isGpuHangDetected = drm.isGpuHangDetected(mockOsContextLinux)); - EXPECT_FALSE(isGpuHangDetected); - } - EXPECT_EQ(0u, memoryManager->checkUnexpectedGpuPageFaultCalled); -} - TEST(DrmTest, givenSetupIoctlHelperWhenCalledTwiceThenIoctlHelperIsSetOnlyOnce) { auto executionEnvironment = std::make_unique(); DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]};