From 21d93a33d20810dcfc3fbc70bee6aae7a4e57ecc Mon Sep 17 00:00:00 2001 From: Mateusz Hoppe Date: Mon, 17 May 2021 19:48:53 +0000 Subject: [PATCH] Do not set Max values from topology in Drm::setupHardwareInfo - max values set in device->setupHardwareInfo and HwInfoConfig::configureHwInfo Signed-off-by: Mateusz Hoppe --- opencl/test/unit_test/os_interface/linux/drm_tests.cpp | 8 ++++---- shared/source/os_interface/linux/drm_neo.cpp | 10 ---------- shared/source/os_interface/linux/hw_info_config.cpp | 4 ++-- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/opencl/test/unit_test/os_interface/linux/drm_tests.cpp b/opencl/test/unit_test/os_interface/linux/drm_tests.cpp index 3a7edb6ac7..8ce0223f5b 100644 --- a/opencl/test/unit_test/os_interface/linux/drm_tests.cpp +++ b/opencl/test/unit_test/os_interface/linux/drm_tests.cpp @@ -645,7 +645,7 @@ TEST(DrmTest, givenProgramDebuggingAndContextDebugAvailableWhenCreatingContextFo EXPECT_EQ(static_cast(-1), drmMock.passedContextDebugId); } -TEST(DrmQueryTest, GivenDrmWhenSetupHardwareInfoCalledThenCorrectMaxValuesInGtSystemInfoAreSet) { +TEST(DrmQueryTest, GivenDrmWhenSetupHardwareInfoCalledThenCorrectMaxValuesInGtSystemInfoArePreserved) { auto executionEnvironment = std::make_unique(); executionEnvironment->prepareRootDeviceEnvironments(1); @@ -664,7 +664,7 @@ TEST(DrmQueryTest, GivenDrmWhenSetupHardwareInfoCalledThenCorrectMaxValuesInGtSy drm.setupHardwareInfo(&device, false); - EXPECT_EQ(hwInfo->gtSystemInfo.SliceCount, hwInfo->gtSystemInfo.MaxSlicesSupported); - EXPECT_EQ(6u, hwInfo->gtSystemInfo.MaxSubSlicesSupported); - EXPECT_EQ(8u, hwInfo->gtSystemInfo.MaxEuPerSubSlice); + EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxSlicesSupported, hwInfo->gtSystemInfo.MaxSlicesSupported); + EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxSubSlicesSupported, hwInfo->gtSystemInfo.MaxSubSlicesSupported); + EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxEuPerSubSlice, hwInfo->gtSystemInfo.MaxEuPerSubSlice); } diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 976c9f45f7..cbf99fc245 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -318,8 +318,6 @@ int Drm::setupHardwareInfo(DeviceDescriptor *device, bool setupFeatureTableAndWo if (!status) { PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Topology query failed!\n"); - topologyData.sliceCount = hwInfo->gtSystemInfo.SliceCount; - ret = getEuTotal(topologyData.euCount); if (ret != 0) { PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "FATAL: Cannot query EU total parameter!\n"); @@ -331,20 +329,12 @@ int Drm::setupHardwareInfo(DeviceDescriptor *device, bool setupFeatureTableAndWo PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "FATAL: Cannot query subslice total parameter!\n"); return ret; } - - topologyData.maxEuCount = topologyData.euCount / topologyData.subSliceCount; - topologyData.maxSliceCount = topologyData.sliceCount; - topologyData.maxSubSliceCount = topologyData.subSliceCount / topologyData.sliceCount; } hwInfo->gtSystemInfo.SliceCount = static_cast(topologyData.sliceCount); hwInfo->gtSystemInfo.SubSliceCount = static_cast(topologyData.subSliceCount); hwInfo->gtSystemInfo.EUCount = static_cast(topologyData.euCount); - hwInfo->gtSystemInfo.MaxEuPerSubSlice = topologyData.maxEuCount; - hwInfo->gtSystemInfo.MaxSubSlicesSupported = topologyData.maxSubSliceCount * topologyData.maxSliceCount; - hwInfo->gtSystemInfo.MaxSlicesSupported = topologyData.maxSliceCount; - status = querySystemInfo(); if (!status) { PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stdout, "%s", "INFO: System Info query failed!\n"); diff --git a/shared/source/os_interface/linux/hw_info_config.cpp b/shared/source/os_interface/linux/hw_info_config.cpp index 2417443634..50c828e0d7 100644 --- a/shared/source/os_interface/linux/hw_info_config.cpp +++ b/shared/source/os_interface/linux/hw_info_config.cpp @@ -113,9 +113,9 @@ int HwInfoConfig::configureHwInfo(const HardwareInfo *inHwInfo, HardwareInfo *ou return ret; } - topologyData.maxEuCount = topologyData.euCount / topologyData.subSliceCount; + topologyData.maxEuCount = topologyData.subSliceCount > 0 ? topologyData.euCount / topologyData.subSliceCount : 0; topologyData.maxSliceCount = topologyData.sliceCount; - topologyData.maxSubSliceCount = topologyData.subSliceCount / topologyData.sliceCount; + topologyData.maxSubSliceCount = topologyData.sliceCount > 0 ? topologyData.subSliceCount / topologyData.sliceCount : 0; } gtSystemInfo->SliceCount = static_cast(topologyData.sliceCount);