From 3b2a0983f5268596b486320eb345255d0e49201a Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Wed, 24 Jul 2024 15:02:50 +0000 Subject: [PATCH] fix: correct setting hw info in drm flow firstly, setup hw info using product specific functions secondly, query system info from GuC to setup max values thirdly, query topology to setup current topology data Related-To: NEO-12073 Signed-off-by: Mateusz Jablonski --- shared/source/os_interface/linux/drm_neo.cpp | 76 ++++++++------- .../os_interface/linux/product_helper_drm.cpp | 50 ---------- .../ehl/linux/product_helper_tests_ehl.cpp | 31 +----- .../linux/product_helper_tests_icllp.cpp | 33 +------ .../lkf/linux/product_helper_tests_lkf.cpp | 36 +------ .../adln/linux/product_helper_tests_adln.cpp | 39 +------- .../adlp/linux/product_helper_tests_adlp.cpp | 49 +--------- .../adls/linux/product_helper_tests_adls.cpp | 36 +------ .../dg1/linux/product_helper_tests_dg1.cpp | 25 +---- .../rkl/linux/product_helper_tests_rkl.cpp | 39 +------- .../linux/product_helper_tests_tgllp.cpp | 28 +----- .../bdw/linux/product_helper_tests_bdw.cpp | 74 +-------------- .../bxt/linux/product_helper_tests_bxt.cpp | 71 +------------- .../cfl/linux/product_helper_tests_cfl.cpp | 28 +----- .../glk/linux/product_helper_tests_glk.cpp | 62 +----------- .../kbl/linux/product_helper_tests_kbl.cpp | 26 +---- .../skl/linux/product_helper_tests_skl.cpp | 32 +------ .../linux/device_factory_tests_linux.cpp | 37 -------- .../os_interface/linux/drm_query_tests.cpp | 32 ------- .../linux/drm_system_info_tests.cpp | 9 +- .../os_interface/linux/drm_tests.cpp | 6 +- .../linux/product_helper_linux_tests.cpp | 94 ------------------- .../linux/product_helper_tests_bmg_linux.cpp | 2 +- .../linux/product_helper_tests_lnl_linux.cpp | 2 +- .../arl/linux/product_helper_tests_arl.cpp | 2 +- 25 files changed, 77 insertions(+), 842 deletions(-) diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index b52a7d4266..bf1101498d 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -42,6 +42,7 @@ #include "shared/source/os_interface/os_environment.h" #include "shared/source/os_interface/os_interface.h" #include "shared/source/os_interface/product_helper.h" +#include "shared/source/release_helper/release_helper.h" #include "shared/source/utilities/api_intercept.h" #include "shared/source/utilities/directory.h" #include "shared/source/utilities/io_functions.h" @@ -484,12 +485,19 @@ int Drm::setupHardwareInfo(const DeviceDescriptor *device, bool setupFeatureTabl setupIoctlHelper(productFamily); ioctlHelper->setupIpVersion(); rootDeviceEnvironment.initReleaseHelper(); + auto releaseHelper = rootDeviceEnvironment.getReleaseHelper(); + device->setupHardwareInfo(hwInfo, setupFeatureTableAndWorkaroundTable, releaseHelper); + querySystemInfo(); + + if (systemInfo) { + systemInfo->checkSysInfoMismatch(hwInfo); + setupSystemInfo(hwInfo, systemInfo.get()); + } DrmQueryTopologyData topologyData = {}; - bool status = queryTopology(*hwInfo, topologyData); - - if (!status) { + if (!queryTopology(*hwInfo, topologyData)) { + topologyData.sliceCount = hwInfo->gtSystemInfo.SliceCount; PRINT_DEBUG_STRING(debugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Topology query failed!\n"); auto ret = getEuTotal(topologyData.euCount); @@ -506,40 +514,50 @@ int Drm::setupHardwareInfo(const DeviceDescriptor *device, bool setupFeatureTabl } hwInfo->gtSystemInfo.SliceCount = static_cast(topologyData.sliceCount); + + hwInfo->gtSystemInfo.IsDynamicallyPopulated = true; + for (uint32_t slice = 0; slice < GT_MAX_SLICE; slice++) { + hwInfo->gtSystemInfo.SliceInfo[slice].Enabled = slice < hwInfo->gtSystemInfo.SliceCount; + } + hwInfo->gtSystemInfo.SubSliceCount = static_cast(topologyData.subSliceCount); hwInfo->gtSystemInfo.DualSubSliceCount = static_cast(topologyData.subSliceCount); - hwInfo->gtSystemInfo.EUCount = static_cast(topologyData.euCount); - if (topologyData.maxSlices * topologyData.maxSubSlicesPerSlice > 0) { - hwInfo->gtSystemInfo.MaxSubSlicesSupported = static_cast(topologyData.maxSlices * topologyData.maxSubSlicesPerSlice); - hwInfo->gtSystemInfo.MaxDualSubSlicesSupported = static_cast(topologyData.maxSlices * topologyData.maxSubSlicesPerSlice); + auto maxEuCount = static_cast(topologyData.subSliceCount) * hwInfo->gtSystemInfo.MaxEuPerSubSlice; + + if (topologyData.euCount == 0 || static_cast(topologyData.euCount) > maxEuCount) { + hwInfo->gtSystemInfo.EUCount = maxEuCount; + } else { + hwInfo->gtSystemInfo.EUCount = static_cast(topologyData.euCount); } + + if (!hwInfo->gtSystemInfo.EUCount) { + return -1; + } + + auto numThreadsPerEu = systemInfo ? systemInfo->getNumThreadsPerEu() : (releaseHelper ? releaseHelper->getNumThreadsPerEu() : 7u); + + hwInfo->gtSystemInfo.ThreadCount = numThreadsPerEu * hwInfo->gtSystemInfo.EUCount; + + hwInfo->gtSystemInfo.MaxSlicesSupported = hwInfo->gtSystemInfo.SliceCount; + + auto calculatedMaxSubSliceCount = topologyData.maxSlices * topologyData.maxSubSlicesPerSlice; + auto maxSubSliceCount = std::max(static_cast(calculatedMaxSubSliceCount), hwInfo->gtSystemInfo.MaxSubSlicesSupported); + + hwInfo->gtSystemInfo.MaxSubSlicesSupported = maxSubSliceCount; + hwInfo->gtSystemInfo.MaxDualSubSlicesSupported = maxSubSliceCount; + if (topologyData.numL3Banks > 0) { hwInfo->gtSystemInfo.L3BankCount = topologyData.numL3Banks; } - if (hwInfo->gtSystemInfo.MaxSlicesSupported == 0) { - hwInfo->gtSystemInfo.MaxSlicesSupported = hwInfo->gtSystemInfo.SliceCount; - } - if (hwInfo->gtSystemInfo.MaxEuPerSubSlice == 0 && hwInfo->gtSystemInfo.SubSliceCount != 0) { - hwInfo->gtSystemInfo.MaxEuPerSubSlice = hwInfo->gtSystemInfo.EUCount / hwInfo->gtSystemInfo.SubSliceCount; - } - - status = querySystemInfo(); - auto releaseHelper = rootDeviceEnvironment.getReleaseHelper(); - device->setupHardwareInfo(hwInfo, setupFeatureTableAndWorkaroundTable, releaseHelper); - rootDeviceEnvironment.setRcsExposure(); - - if (status) { - systemInfo->checkSysInfoMismatch(hwInfo); - setupSystemInfo(hwInfo, systemInfo.get()); - + if (systemInfo) { uint32_t bankCount = (hwInfo->gtSystemInfo.L3BankCount > 0) ? hwInfo->gtSystemInfo.L3BankCount : hwInfo->gtSystemInfo.MaxDualSubSlicesSupported; hwInfo->gtSystemInfo.L3CacheSizeInKb = systemInfo->getL3BankSizeInKb() * bankCount; } - if (!hwInfo->gtSystemInfo.EUCount) { - return -1; - } + + rootDeviceEnvironment.setRcsExposure(); + setupCacheInfo(*hwInfo); hwInfo->capabilityTable.deviceName = device->devName; @@ -924,12 +942,6 @@ bool Drm::useVMBindImmediate() const { void Drm::setupSystemInfo(HardwareInfo *hwInfo, SystemInfo *sysInfo) { GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo; gtSysInfo->MaxEuPerSubSlice = sysInfo->getMaxEuPerDualSubSlice(); - - if (!gtSysInfo->EUCount || gtSysInfo->EUCount > gtSysInfo->SubSliceCount * gtSysInfo->MaxEuPerSubSlice) { - gtSysInfo->EUCount = gtSysInfo->SubSliceCount * gtSysInfo->MaxEuPerSubSlice; - } - - gtSysInfo->ThreadCount = gtSysInfo->EUCount * sysInfo->getNumThreadsPerEu(); gtSysInfo->MemoryType = sysInfo->getMemoryType(); gtSysInfo->MaxSlicesSupported = sysInfo->getMaxSlicesSupported(); gtSysInfo->MaxSubSlicesSupported = sysInfo->getMaxDualSubSlicesSupported(); diff --git a/shared/source/os_interface/linux/product_helper_drm.cpp b/shared/source/os_interface/linux/product_helper_drm.cpp index 25ed4b2147..8d90ff21e5 100644 --- a/shared/source/os_interface/linux/product_helper_drm.cpp +++ b/shared/source/os_interface/linux/product_helper_drm.cpp @@ -71,56 +71,6 @@ int ProductHelper::configureHwInfoDrm(const HardwareInfo *inHwInfo, HardwareInfo auto gtSystemInfo = &outHwInfo->gtSystemInfo; auto featureTable = &outHwInfo->featureTable; - DrmQueryTopologyData topologyData = {}; - - bool status = drm->queryTopology(*outHwInfo, topologyData); - - if (!status) { - PRINT_DEBUG_STRING(debugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Topology query failed!\n"); - - topologyData.sliceCount = gtSystemInfo->SliceCount; - - ret = drm->getEuTotal(topologyData.euCount); - if (ret != 0) { - PRINT_DEBUG_STRING(debugManager.flags.PrintDebugMessages.get(), stderr, "%s", "FATAL: Cannot query EU total parameter!\n"); - *outHwInfo = {}; - return ret; - } - - ret = drm->getSubsliceTotal(topologyData.subSliceCount); - if (ret != 0) { - PRINT_DEBUG_STRING(debugManager.flags.PrintDebugMessages.get(), stderr, "%s", "FATAL: Cannot query subslice total parameter!\n"); - *outHwInfo = {}; - return ret; - } - - topologyData.maxEusPerSubSlice = topologyData.subSliceCount > 0 ? topologyData.euCount / topologyData.subSliceCount : 0; - topologyData.maxSlices = topologyData.sliceCount; - topologyData.maxSubSlicesPerSlice = topologyData.sliceCount > 0 ? topologyData.subSliceCount / topologyData.sliceCount : 0; - } - - auto releaseHelper = rootDeviceEnvironment.getReleaseHelper(); - - auto numThreadsPerEu = releaseHelper ? releaseHelper->getNumThreadsPerEu() : 7u; - - gtSystemInfo->SliceCount = static_cast(topologyData.sliceCount); - gtSystemInfo->SubSliceCount = static_cast(topologyData.subSliceCount); - gtSystemInfo->DualSubSliceCount = static_cast(topologyData.subSliceCount); - if (topologyData.euCount) { - gtSystemInfo->EUCount = static_cast(topologyData.euCount); - } - gtSystemInfo->ThreadCount = numThreadsPerEu * gtSystemInfo->EUCount; - - gtSystemInfo->MaxEuPerSubSlice = gtSystemInfo->MaxEuPerSubSlice != 0 ? gtSystemInfo->MaxEuPerSubSlice : topologyData.maxEusPerSubSlice; - gtSystemInfo->MaxSubSlicesSupported = std::max(static_cast(topologyData.maxSubSlicesPerSlice * topologyData.maxSlices), gtSystemInfo->MaxSubSlicesSupported); - gtSystemInfo->MaxSlicesSupported = topologyData.maxSlices; - gtSystemInfo->MaxDualSubSlicesSupported = gtSystemInfo->MaxSubSlicesSupported; - - gtSystemInfo->IsDynamicallyPopulated = true; - for (uint32_t slice = 0; slice < GT_MAX_SLICE; slice++) { - gtSystemInfo->SliceInfo[slice].Enabled = slice < gtSystemInfo->SliceCount; - } - uint64_t gttSizeQuery = 0; featureTable->flags.ftrSVM = true; diff --git a/shared/test/unit_test/gen11/ehl/linux/product_helper_tests_ehl.cpp b/shared/test/unit_test/gen11/ehl/linux/product_helper_tests_ehl.cpp index e657d704eb..9a42f80f0a 100644 --- a/shared/test/unit_test/gen11/ehl/linux/product_helper_tests_ehl.cpp +++ b/shared/test/unit_test/gen11/ehl/linux/product_helper_tests_ehl.cpp @@ -13,35 +13,6 @@ using namespace NEO; -struct EhlProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm->storedSSVal = 8; - } -}; - -EHLTEST_F(EhlProductHelperLinux, GivenEhlThenHwInfoIsCorrect) { - int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); -} - -EHLTEST_F(EhlProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenNegativeOneReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - template class EhlHwInfoTests : public ::testing::Test {}; TEST(EhlHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { @@ -66,5 +37,5 @@ TEST(EhlHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen11/icllp/linux/product_helper_tests_icllp.cpp b/shared/test/unit_test/gen11/icllp/linux/product_helper_tests_icllp.cpp index 4a0c3f8cee..5c9ef7916a 100644 --- a/shared/test/unit_test/gen11/icllp/linux/product_helper_tests_icllp.cpp +++ b/shared/test/unit_test/gen11/icllp/linux/product_helper_tests_icllp.cpp @@ -14,37 +14,6 @@ using namespace NEO; -struct IcllpProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - } -}; - -ICLLPTEST_F(IcllpProductHelperLinux, GivenIcllpThenHwInfoIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -ICLLPTEST_F(IcllpProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenNegativeOneReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - template class IcllpHwInfoTests : public ::testing::Test {}; typedef ::testing::Types icllpTestTypes; @@ -69,5 +38,5 @@ TYPED_TEST(IcllpHwInfoTests, WhenGettingSystemInfoThenParamsAreValid) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 5u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen11/lkf/linux/product_helper_tests_lkf.cpp b/shared/test/unit_test/gen11/lkf/linux/product_helper_tests_lkf.cpp index b4fe32904e..319e3dc291 100644 --- a/shared/test/unit_test/gen11/lkf/linux/product_helper_tests_lkf.cpp +++ b/shared/test/unit_test/gen11/lkf/linux/product_helper_tests_lkf.cpp @@ -13,40 +13,6 @@ using namespace NEO; -struct LkfProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm->storedSSVal = 8; - } -}; - -LKFTEST_F(LkfProductHelperLinux, GivenLkfThenHwInfoIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -LKFTEST_F(LkfProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenNegativeOneReturned) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - template class LkfHwInfoTests : public ::testing::Test {}; using lkfTestTypes = ::testing::Types; @@ -73,5 +39,5 @@ TYPED_TEST(LkfHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen12lp/adln/linux/product_helper_tests_adln.cpp b/shared/test/unit_test/gen12lp/adln/linux/product_helper_tests_adln.cpp index 0c43461b59..dd227d10c7 100644 --- a/shared/test/unit_test/gen12lp/adln/linux/product_helper_tests_adln.cpp +++ b/shared/test/unit_test/gen12lp/adln/linux/product_helper_tests_adln.cpp @@ -5,50 +5,17 @@ * */ +#include "shared/source/execution_environment/execution_environment.h" +#include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/gen12lp/hw_cmds_adln.h" #include "shared/source/gen12lp/hw_info_gen12lp.h" #include "shared/source/os_interface/os_interface.h" #include "shared/test/common/helpers/gtest_helpers.h" #include "shared/test/common/libult/linux/drm_mock.h" #include "shared/test/common/test_macros/header/per_product_test_definitions.h" -#include "shared/test/unit_test/os_interface/linux/product_helper_linux_tests.h" using namespace NEO; -struct AdlnProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - osInterface->setDriverModel(std::unique_ptr(drm)); - } -}; - -ADLNTEST_F(AdlnProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ(static_cast(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ(static_cast(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -ADLNTEST_F(AdlnProductHelperLinux, GivenIncorrectDataWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - EXPECT_EQ(-1, ret); -} - using AdlnHwInfoLinux = ::testing::Test; ADLNTEST_F(AdlnHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { @@ -73,7 +40,7 @@ ADLNTEST_F(AdlnHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/gen12lp/adlp/linux/product_helper_tests_adlp.cpp b/shared/test/unit_test/gen12lp/adlp/linux/product_helper_tests_adlp.cpp index 00e1ac1a71..4030f3c6d3 100644 --- a/shared/test/unit_test/gen12lp/adlp/linux/product_helper_tests_adlp.cpp +++ b/shared/test/unit_test/gen12lp/adlp/linux/product_helper_tests_adlp.cpp @@ -13,46 +13,11 @@ #include "shared/test/common/helpers/gtest_helpers.h" #include "shared/test/common/libult/linux/drm_mock.h" #include "shared/test/common/test_macros/header/per_product_test_definitions.h" -#include "shared/test/unit_test/os_interface/linux/product_helper_linux_tests.h" using namespace NEO; -struct AdlpProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - osInterface->setDriverModel(std::unique_ptr(drm)); - } -}; - -ADLPTEST_F(AdlpProductHelperLinux, WhenConfiguringHwInfoThenInfoIsSetCorrectly) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - EXPECT_EQ(0, ret); - EXPECT_EQ(static_cast(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ(static_cast(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -ADLPTEST_F(AdlpProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - -ADLPTEST_F(AdlpProductHelperLinux, givenAdlpConfigWhenSetupHardwareInfoBaseThenGtSystemInfoIsCorrect) { +using AdlpHwInfoLinux = ::testing::Test; +ADLPTEST_F(AdlpHwInfoLinux, givenAdlpConfigWhenSetupHardwareInfoBaseThenGtSystemInfoIsCorrect) { HardwareInfo hwInfo = *defaultHwInfo; GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo; ADLP::setupHardwareInfoBase(&hwInfo, false, nullptr); @@ -60,19 +25,13 @@ ADLPTEST_F(AdlpProductHelperLinux, givenAdlpConfigWhenSetupHardwareInfoBaseThenG EXPECT_EQ(64u, gtSystemInfo.TotalPsThreadsWindowerRange); EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb); EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); } -template -using AdlpHwInfoLinux = ::testing::Test; -using adlpConfigTestTypes = ::testing::Types; -TYPED_TEST_SUITE(AdlpHwInfoLinux, adlpConfigTestTypes); - -TYPED_TEST(AdlpHwInfoLinux, givenSliceCountZeroWhenSetupHardwareInfoThenNotZeroValuesSetInGtSystemInfo) { +ADLPTEST_F(AdlpHwInfoLinux, givenSliceCountZeroWhenSetupHardwareInfoThenNotZeroValuesSetInGtSystemInfo) { HardwareInfo hwInfo = *defaultHwInfo; hwInfo.gtSystemInfo = {0}; - TypeParam::setupHardwareInfo(&hwInfo, false, nullptr); + AdlpHwConfig::setupHardwareInfo(&hwInfo, false, nullptr); EXPECT_NE(0u, hwInfo.gtSystemInfo.SliceCount); EXPECT_NE(0u, hwInfo.gtSystemInfo.SubSliceCount); diff --git a/shared/test/unit_test/gen12lp/adls/linux/product_helper_tests_adls.cpp b/shared/test/unit_test/gen12lp/adls/linux/product_helper_tests_adls.cpp index dc89e77f35..6fc5948143 100644 --- a/shared/test/unit_test/gen12lp/adls/linux/product_helper_tests_adls.cpp +++ b/shared/test/unit_test/gen12lp/adls/linux/product_helper_tests_adls.cpp @@ -15,40 +15,6 @@ using namespace NEO; -struct AdlsProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - osInterface->setDriverModel(std::unique_ptr(drm)); - } -}; - -ADLSTEST_F(AdlsProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - EXPECT_EQ(0, ret); - EXPECT_EQ(static_cast(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ(static_cast(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -ADLSTEST_F(AdlsProductHelperLinux, GivenIncorrectDataWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - using AdlsHwInfoLinux = ::testing::Test; ADLSTEST_F(AdlsHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { @@ -73,7 +39,7 @@ ADLSTEST_F(AdlsHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/gen12lp/dg1/linux/product_helper_tests_dg1.cpp b/shared/test/unit_test/gen12lp/dg1/linux/product_helper_tests_dg1.cpp index 7b1389650b..7850078ba5 100644 --- a/shared/test/unit_test/gen12lp/dg1/linux/product_helper_tests_dg1.cpp +++ b/shared/test/unit_test/gen12lp/dg1/linux/product_helper_tests_dg1.cpp @@ -48,29 +48,6 @@ DG1TEST_F(Dg1ProductHelperLinux, GivenDG1WhenConfigureHardwareCustomThenKmdNotif EXPECT_EQ(300ll, hardwareInfo.capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds); } -DG1TEST_F(Dg1ProductHelperLinux, WhenConfiguringHwInfoThenInfoIsSetCorrectly) { - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ(static_cast(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ(static_cast(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -DG1TEST_F(Dg1ProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - template class Dg1HwInfoLinux : public ::testing::Test {}; using dg1TestTypes = ::testing::Types; @@ -94,7 +71,7 @@ TYPED_TEST(Dg1HwInfoLinux, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.SubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/gen12lp/rkl/linux/product_helper_tests_rkl.cpp b/shared/test/unit_test/gen12lp/rkl/linux/product_helper_tests_rkl.cpp index 8671eaa620..dec10a28cd 100644 --- a/shared/test/unit_test/gen12lp/rkl/linux/product_helper_tests_rkl.cpp +++ b/shared/test/unit_test/gen12lp/rkl/linux/product_helper_tests_rkl.cpp @@ -5,50 +5,17 @@ * */ +#include "shared/source/execution_environment/execution_environment.h" +#include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/gen12lp/hw_cmds_rkl.h" #include "shared/source/gen12lp/hw_info_gen12lp.h" #include "shared/source/os_interface/os_interface.h" #include "shared/test/common/helpers/gtest_helpers.h" #include "shared/test/common/libult/linux/drm_mock.h" #include "shared/test/common/test_macros/header/per_product_test_definitions.h" -#include "shared/test/unit_test/os_interface/linux/product_helper_linux_tests.h" using namespace NEO; -struct RklProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - - drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - osInterface->setDriverModel(std::unique_ptr(drm)); - } -}; - -RKLTEST_F(RklProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -RKLTEST_F(RklProductHelperLinux, GivenIncorrectDataWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - using RklHwInfoLinux = ::testing::Test; RKLTEST_F(RklHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { @@ -73,7 +40,7 @@ RKLTEST_F(RklHwInfoLinux, WhenSettingUpHwInfoThenConfigIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/gen12lp/tgllp/linux/product_helper_tests_tgllp.cpp b/shared/test/unit_test/gen12lp/tgllp/linux/product_helper_tests_tgllp.cpp index 36bc8ebf98..ec19786f4f 100644 --- a/shared/test/unit_test/gen12lp/tgllp/linux/product_helper_tests_tgllp.cpp +++ b/shared/test/unit_test/gen12lp/tgllp/linux/product_helper_tests_tgllp.cpp @@ -38,32 +38,6 @@ TGLLPTEST_F(TgllpProductHelperLinux, GivenTGLLPWhenConfigureHardwareCustomThenMT EXPECT_FALSE(outHwInfo.featureTable.flags.ftrGpGpuMidThreadLevelPreempt); } -TGLLPTEST_F(TgllpProductHelperLinux, WhenConfiguringHwInfoThenInfoIsSetCorrectly) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - - EXPECT_FALSE(outHwInfo.featureTable.flags.ftrTileY); -} - -TGLLPTEST_F(TgllpProductHelperLinux, GivenInvalidDeviceIdWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - template class TgllpHwInfoLinux : public ::testing::Test {}; typedef ::testing::Types tgllpTestTypes; @@ -89,7 +63,7 @@ TYPED_TEST(TgllpHwInfoLinux, gtSetupIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/gen8/bdw/linux/product_helper_tests_bdw.cpp b/shared/test/unit_test/gen8/bdw/linux/product_helper_tests_bdw.cpp index 542570181f..4def9e19cc 100644 --- a/shared/test/unit_test/gen8/bdw/linux/product_helper_tests_bdw.cpp +++ b/shared/test/unit_test/gen8/bdw/linux/product_helper_tests_bdw.cpp @@ -13,78 +13,6 @@ using namespace NEO; -struct BdwProductHelperLinux : ProductHelperTestLinux { - void SetUp() override { - ProductHelperTestLinux::SetUp(); - } -}; - -BDWTEST_F(BdwProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) { - drm->storedSSVal = 3; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); - EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); - - pInHwInfo.platform.usDeviceID = 0x1602; - - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); - - pInHwInfo.platform.usDeviceID = 0x1626; - - drm->storedSSVal = 6; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(2u, outHwInfo.gtSystemInfo.SliceCount); - EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); -} - -BDWTEST_F(BdwProductHelperLinux, GivenFailedIoctlEuCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->failRetTopology = true; - drm->storedRetValForEUVal = -4; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-4, ret); -} - -BDWTEST_F(BdwProductHelperLinux, GivenFailedIoctlSsCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->failRetTopology = true; - drm->storedRetValForSSVal = -5; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-5, ret); -} - -BDWTEST_F(BdwProductHelperLinux, WhenConfiguringHwInfoThenEdramInformationIsCorrect) { - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ_VAL(0u, outHwInfo.gtSystemInfo.EdramSizeInKb); - EXPECT_EQ(0u, outHwInfo.featureTable.flags.ftrEDram); - - pInHwInfo.platform.usDeviceID = 0x1622; - - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ_VAL((128u * 1024u), outHwInfo.gtSystemInfo.EdramSizeInKb); - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrEDram); - - pInHwInfo.platform.usDeviceID = 0x162A; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - EXPECT_EQ_VAL((128u * 1024u), outHwInfo.gtSystemInfo.EdramSizeInKb); - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrEDram); -} - template class BdwHwInfoTests : public ::testing::Test { }; @@ -111,5 +39,5 @@ TYPED_TEST(BdwHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen9/bxt/linux/product_helper_tests_bxt.cpp b/shared/test/unit_test/gen9/bxt/linux/product_helper_tests_bxt.cpp index 978cbc9196..0bb8b46069 100644 --- a/shared/test/unit_test/gen9/bxt/linux/product_helper_tests_bxt.cpp +++ b/shared/test/unit_test/gen9/bxt/linux/product_helper_tests_bxt.cpp @@ -27,11 +27,8 @@ struct BxtProductHelperLinux : ProductHelperTestLinux { BXTTEST_F(BxtProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ((unsigned int)drm->storedHasPooledEU, outHwInfo.featureTable.flags.ftrPooledEuEnabled); EXPECT_EQ((uint32_t)drm->storedMinEUinPool, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); // constant sysInfo/ftr flags @@ -41,19 +38,14 @@ BXTTEST_F(BxtProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { drm->storedMinEUinPool = 6; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ((unsigned int)drm->storedHasPooledEU, outHwInfo.featureTable.flags.ftrPooledEuEnabled); EXPECT_EQ((uint32_t)drm->storedMinEUinPool, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); pInHwInfo.platform.usDeviceID = 0x5A85; drm->storedMinEUinPool = 9; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ((unsigned int)drm->storedHasPooledEU, outHwInfo.featureTable.flags.ftrPooledEuEnabled); EXPECT_EQ((uint32_t)drm->storedMinEUinPool, outHwInfo.gtSystemInfo.EuCountPerPoolMin); EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); @@ -68,26 +60,6 @@ BXTTEST_F(BxtProductHelperLinux, WhenConfiguringHwInfoThenConfigIsCorrect) { EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); } -BXTTEST_F(BxtProductHelperLinux, GivenFailedIoctlEuCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->failRetTopology = true; - drm->storedRetValForEUVal = -4; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - - EXPECT_EQ(-4, ret); -} - -BXTTEST_F(BxtProductHelperLinux, GivenFailingEnabledPoolWhenConfiguringHwInfoThenZeroIsReturned) { - drm->storedRetValForPooledEU = -1; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(0u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(0u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ(0u, outHwInfo.gtSystemInfo.EuCountPerPoolMax); -} - BXTTEST_F(BxtProductHelperLinux, GivenDisabledEnabledPoolWhenConfiguringHwInfoThenZeroIsReturned) { drm->storedHasPooledEU = 0; @@ -99,47 +71,6 @@ BXTTEST_F(BxtProductHelperLinux, GivenDisabledEnabledPoolWhenConfiguringHwInfoTh EXPECT_EQ(0u, outHwInfo.gtSystemInfo.EuCountPerPoolMax); } -BXTTEST_F(BxtProductHelperLinux, GivenFailingMinEuInPoolWhenConfiguringHwInfoThenZeroIsReturned) { - drm->storedRetValForMinEUinPool = -1; - drm->storedSSVal = 3; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(9u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); - - drm->storedSSVal = 2; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(3u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); -} - -BXTTEST_F(BxtProductHelperLinux, GivenInvalidMinEuInPoolWhenConfiguringHwInfoThenZeroIsReturned) { - drm->storedMinEUinPool = 4; - drm->storedSSVal = 3; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(9u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); - - drm->storedSSVal = 2; - - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(3u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); -} - template class BxtHwInfoTests : public ::testing::Test { }; @@ -163,5 +94,5 @@ TYPED_TEST(BxtHwInfoTests, WhenConfiguringHwInfoThenConfigIsCorrect) { EXPECT_GT(gtSystemInfo.SubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen9/cfl/linux/product_helper_tests_cfl.cpp b/shared/test/unit_test/gen9/cfl/linux/product_helper_tests_cfl.cpp index ab498f6013..722047b876 100644 --- a/shared/test/unit_test/gen9/cfl/linux/product_helper_tests_cfl.cpp +++ b/shared/test/unit_test/gen9/cfl/linux/product_helper_tests_cfl.cpp @@ -24,8 +24,6 @@ CFLTEST_F(CflProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); // constant sysInfo/ftr flags @@ -33,23 +31,15 @@ CFLTEST_F(CflProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) EXPECT_TRUE(outHwInfo.gtSystemInfo.VEBoxInfo.IsValid); pInHwInfo.platform.usDeviceID = 0x3E90; - drm->storedSSVal = 3; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); pInHwInfo.platform.usDeviceID = 0x3EA5; - drm->storedSSVal = 6; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(2u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); auto &outKmdNotifyProperties = outHwInfo.capabilityTable.kmdNotifyProperties; @@ -63,22 +53,6 @@ CFLTEST_F(CflProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds); } -CFLTEST_F(CflProductHelperLinux, GivenFailedIoctlEuCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->storedRetValForEUVal = -4; - drm->failRetTopology = true; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-4, ret); -} - -CFLTEST_F(CflProductHelperLinux, GivenFailedIoctlSsCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->storedRetValForSSVal = -5; - drm->failRetTopology = true; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-5, ret); -} - CFLTEST_F(CflProductHelperLinux, WhenConfiguringHwInfoThenEdramInformationIsCorrect) { auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); @@ -126,5 +100,5 @@ TYPED_TEST(CflHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen9/glk/linux/product_helper_tests_glk.cpp b/shared/test/unit_test/gen9/glk/linux/product_helper_tests_glk.cpp index 81db4242e6..14aba924cf 100644 --- a/shared/test/unit_test/gen9/glk/linux/product_helper_tests_glk.cpp +++ b/shared/test/unit_test/gen9/glk/linux/product_helper_tests_glk.cpp @@ -70,20 +70,6 @@ GLKTEST_F(GlkProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds); } -GLKTEST_F(GlkProductHelperLinux, GivenInvalidInputWhenConfiguringHwInfoThenErrorIsReturned) { - - drm->failRetTopology = true; - drm->storedRetValForEUVal = -1; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); - - drm->storedRetValForEUVal = 0; - drm->storedRetValForSSVal = -1; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-1, ret); -} - GLKTEST_F(GlkProductHelperLinux, GivenFailingEnabledPoolWhenConfiguringHwInfoThenZeroIsSet) { drm->storedRetValForPooledEU = -1; @@ -106,52 +92,6 @@ GLKTEST_F(GlkProductHelperLinux, GivenDisabledEnabledPoolWhenConfiguringHwInfoTh EXPECT_EQ(0u, outHwInfo.gtSystemInfo.EuCountPerPoolMax); } -GLKTEST_F(GlkProductHelperLinux, GivenFailingMinEuInPoolWhenConfiguringHwInfoThenCorrectValueSet) { - drm->storedRetValForMinEUinPool = -1; - drm->storedSSVal = 3; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(9u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); - - drm->storedSSVal = 2; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(3u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); -} - -GLKTEST_F(GlkProductHelperLinux, GivenInvalidMinEuInPoolWhenConfiguringHwInfoThenCorrectValueSet) { - drm->storedMinEUinPool = 4; - drm->storedSSVal = 3; - - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(9u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); - - drm->storedSSVal = 2; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(1u, outHwInfo.featureTable.flags.ftrPooledEuEnabled); - EXPECT_EQ(3u, outHwInfo.gtSystemInfo.EuCountPerPoolMin); - EXPECT_EQ((outHwInfo.gtSystemInfo.EUCount - outHwInfo.gtSystemInfo.EuCountPerPoolMin), outHwInfo.gtSystemInfo.EuCountPerPoolMax); -} - -GLKTEST_F(GlkProductHelperLinux, GivenWaFlagsWhenConfiguringHwInfoThenInformationIsCorrect) { - pInHwInfo.platform.usRevId = 0; - auto ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(0, ret); -} - template class GlkHwInfoTests : public ::testing::Test { }; @@ -178,5 +118,5 @@ TYPED_TEST(GlkHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen9/kbl/linux/product_helper_tests_kbl.cpp b/shared/test/unit_test/gen9/kbl/linux/product_helper_tests_kbl.cpp index 5d24b5a4bb..609aa1ec47 100644 --- a/shared/test/unit_test/gen9/kbl/linux/product_helper_tests_kbl.cpp +++ b/shared/test/unit_test/gen9/kbl/linux/product_helper_tests_kbl.cpp @@ -51,18 +51,10 @@ KBLTEST_F(KblProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(2u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); - drm->storedSSVal = 6; - ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(2u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); auto &outKmdNotifyProperties = outHwInfo.capabilityTable.kmdNotifyProperties; @@ -76,22 +68,6 @@ KBLTEST_F(KblProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds); } -KBLTEST_F(KblProductHelperLinux, GivenFailedIoctlEuCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->failRetTopology = true; - drm->storedRetValForEUVal = -4; - - int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-4, ret); -} - -KBLTEST_F(KblProductHelperLinux, GivenFailedIoctlSsCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->failRetTopology = true; - drm->storedRetValForSSVal = -5; - - int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-5, ret); -} - KBLTEST_F(KblProductHelperLinux, GivenWaFlagsWhenConfiguringHwInfoThenInformationIsCorrect) { outHwInfo.platform.usRevId = 0; @@ -158,5 +134,5 @@ TYPED_TEST(KblHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } diff --git a/shared/test/unit_test/gen9/skl/linux/product_helper_tests_skl.cpp b/shared/test/unit_test/gen9/skl/linux/product_helper_tests_skl.cpp index 0c02ab9935..f93689b4eb 100644 --- a/shared/test/unit_test/gen9/skl/linux/product_helper_tests_skl.cpp +++ b/shared/test/unit_test/gen9/skl/linux/product_helper_tests_skl.cpp @@ -22,8 +22,6 @@ struct SklProductHelperLinux : ProductHelperTestLinux { SKLTEST_F(SklProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) { int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); // constant sysInfo/ftr flags @@ -34,38 +32,26 @@ SKLTEST_F(SklProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) pInHwInfo.platform.usDeviceID = 0x1902; - drm->storedSSVal = 3; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); pInHwInfo.platform.usDeviceID = 0x1917; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); pInHwInfo.platform.usDeviceID = 0x0903; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); pInHwInfo.platform.usDeviceID = 0x0903; - drm->storedSSVal = 6; ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); EXPECT_EQ(0, ret); - EXPECT_EQ((uint32_t)drm->storedEUVal, outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ((uint32_t)drm->storedSSVal, outHwInfo.gtSystemInfo.SubSliceCount); - EXPECT_EQ(1u, outHwInfo.gtSystemInfo.SliceCount); EXPECT_EQ(aub_stream::ENGINE_RCS, outHwInfo.capabilityTable.defaultEngineType); auto &outKmdNotifyProperties = outHwInfo.capabilityTable.kmdNotifyProperties; @@ -79,22 +65,6 @@ SKLTEST_F(SklProductHelperLinux, WhenConfiguringHwInfoThenInformationIsCorrect) EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds); } -SKLTEST_F(SklProductHelperLinux, GivenFailedIoctlEuCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->storedRetValForEUVal = -4; - drm->failRetTopology = true; - - int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-4, ret); -} - -SKLTEST_F(SklProductHelperLinux, GivenFailedIoctlSsCountWhenConfiguringHwInfoThenErrorIsReturned) { - drm->storedRetValForSSVal = -5; - drm->failRetTopology = true; - - int ret = productHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, getRootDeviceEnvironment()); - EXPECT_EQ(-5, ret); -} - SKLTEST_F(SklProductHelperLinux, GivenWaFlagsWhenConfiguringHwInfoThenInformationIsCorrect) { pInHwInfo.platform.usRevId = 1; @@ -188,7 +158,7 @@ TYPED_TEST(SklHwInfoTests, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 8u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); } TYPED_TEST(SklHwInfoTests, givenGTSystemInfoTypeWhenConfigureHardwareCustomThenSliceCountDontChange) { diff --git a/shared/test/unit_test/os_interface/linux/device_factory_tests_linux.cpp b/shared/test/unit_test/os_interface/linux/device_factory_tests_linux.cpp index a11f32a384..814829a907 100644 --- a/shared/test/unit_test/os_interface/linux/device_factory_tests_linux.cpp +++ b/shared/test/unit_test/os_interface/linux/device_factory_tests_linux.cpp @@ -22,43 +22,6 @@ namespace NEO { extern std::map> directoryFilesMap; }; -TEST_F(DeviceFactoryLinuxTest, WhenPreparingDeviceEnvironmentsThenInitializedCorrectly) { - const HardwareInfo *refHwinfo = defaultHwInfo.get(); - - pDrm->storedEUVal = 16; - pDrm->storedSSVal = 8; - - bool success = DeviceFactory::prepareDeviceEnvironments(executionEnvironment); - auto hwInfo = executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo(); - - EXPECT_TRUE(success); - EXPECT_NE(hwInfo, nullptr); - EXPECT_EQ(refHwinfo->platform.eDisplayCoreFamily, hwInfo->platform.eDisplayCoreFamily); - EXPECT_EQ((int)hwInfo->gtSystemInfo.EUCount, 16); - EXPECT_EQ((int)hwInfo->gtSystemInfo.SubSliceCount, 8); - EXPECT_EQ((int)hwInfo->gtSystemInfo.DualSubSliceCount, 8); -} - -TEST_F(DeviceFactoryLinuxTest, givenSomeDisabledSSAndEUWhenPrepareDeviceEnvironmentsThenCorrectObtainEUCntSSCnt) { - const HardwareInfo *refHwinfo = defaultHwInfo.get(); - - pDrm->storedEUVal = 144; - pDrm->storedSSVal = 12; - pDrm->storedSVal = 2; - pDrm->disableSomeTopology = true; - - bool success = DeviceFactory::prepareDeviceEnvironments(executionEnvironment); - auto hwInfo = executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo(); - - EXPECT_TRUE(success); - EXPECT_NE(hwInfo, nullptr); - EXPECT_EQ(refHwinfo->platform.eDisplayCoreFamily, hwInfo->platform.eDisplayCoreFamily); - EXPECT_EQ((int)hwInfo->gtSystemInfo.SliceCount, 1); - EXPECT_EQ((int)hwInfo->gtSystemInfo.SubSliceCount, 2); - EXPECT_EQ((int)hwInfo->gtSystemInfo.DualSubSliceCount, 2); - EXPECT_EQ((int)hwInfo->gtSystemInfo.EUCount, 12); -} - TEST_F(DeviceFactoryLinuxTest, givenGetDeviceCallWhenItIsDoneThenOsInterfaceIsAllocatedAndItContainDrm) { bool success = DeviceFactory::prepareDeviceEnvironments(executionEnvironment); EXPECT_TRUE(success); diff --git a/shared/test/unit_test/os_interface/linux/drm_query_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_query_tests.cpp index dd04cddd4b..3e731a05ab 100644 --- a/shared/test/unit_test/os_interface/linux/drm_query_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_query_tests.cpp @@ -19,38 +19,6 @@ using namespace NEO; -using HwConfigTopologyQuery = ::testing::Test; - -HWTEST2_F(HwConfigTopologyQuery, WhenGettingTopologyFailsThenSetMaxValuesBasedOnSubsliceIoctlQuery, MatchAny) { - auto executionEnvironment = std::make_unique(); - - auto drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - - executionEnvironment->rootDeviceEnvironments[0]->osInterface = std::make_unique(); - auto osInterface = executionEnvironment->rootDeviceEnvironments[0]->osInterface.get(); - osInterface->setDriverModel(std::unique_ptr(drm)); - - drm->failRetTopology = true; - - auto hwInfo = *executionEnvironment->rootDeviceEnvironments[0]->getHardwareInfo(); - HardwareInfo outHwInfo; - - hwInfo.gtSystemInfo.MaxSlicesSupported = 0; - hwInfo.gtSystemInfo.MaxSubSlicesSupported = 0; - hwInfo.gtSystemInfo.MaxEuPerSubSlice = 6; - - auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper(); - int ret = productHelper.configureHwInfoDrm(&hwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_NE(-1, ret); - - EXPECT_EQ(6u, outHwInfo.gtSystemInfo.MaxEuPerSubSlice); - EXPECT_EQ(outHwInfo.gtSystemInfo.SubSliceCount, outHwInfo.gtSystemInfo.MaxSubSlicesSupported); - EXPECT_EQ(hwInfo.gtSystemInfo.SliceCount, outHwInfo.gtSystemInfo.MaxSlicesSupported); - - EXPECT_EQ(static_cast(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount); - EXPECT_EQ(static_cast(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount); -} - TEST(DrmQueryTest, WhenCallingIsDebugAttachAvailableThenReturnValueIsFalse) { auto executionEnvironment = std::make_unique(); DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]}; diff --git a/shared/test/unit_test/os_interface/linux/drm_system_info_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_system_info_tests.cpp index 5e723585ce..099b6062fe 100644 --- a/shared/test/unit_test/os_interface/linux/drm_system_info_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_system_info_tests.cpp @@ -312,7 +312,6 @@ TEST(DrmSystemInfoTest, givenSetupHardwareInfoWhenQuerySystemInfoSucceedsThenSys drm.storedSSVal = 1u; drm.storedEUVal = 1u; - auto expectedMaxSlicesSupported = dummyDeviceBlobData[2]; auto expectedMaxSubslicesSupported = dummyDeviceBlobData[5]; auto expectedMaxEusPerSubsliceSupported = dummyDeviceBlobData[8]; @@ -324,9 +323,6 @@ TEST(DrmSystemInfoTest, givenSetupHardwareInfoWhenQuerySystemInfoSucceedsThenSys EXPECT_NE(nullptr, drm.getSystemInfo()); const auto >SystemInfo = executionEnvironment->rootDeviceEnvironments[0]->getHardwareInfo()->gtSystemInfo; - EXPECT_EQ(expectedMaxSlicesSupported, gtSystemInfo.MaxSlicesSupported); - EXPECT_NE(0u, gtSystemInfo.MaxSlicesSupported); - EXPECT_EQ(expectedMaxSubslicesSupported, gtSystemInfo.MaxSubSlicesSupported); EXPECT_NE(0u, gtSystemInfo.MaxSubSlicesSupported); @@ -452,13 +448,14 @@ TEST(DrmSystemInfoTest, givenHardwareInfoWithoutEuCountWhenQuerySystemInfoSuccee TEST(DrmSystemInfoTest, givenHardwareInfoWithoutEuCountWhenQuerySystemInfoFailsThenFailureIsReturned) { auto executionEnvironment = std::make_unique(); executionEnvironment->rootDeviceEnvironments[0]->initGmm(); + DrmMockEngine drm(*executionEnvironment->rootDeviceEnvironments[0]); + HardwareInfo &hwInfo = *executionEnvironment->rootDeviceEnvironments[0]->getMutableHardwareInfo(); hwInfo.gtSystemInfo.EUCount = 0u; hwInfo.gtSystemInfo.SubSliceCount = 2u; hwInfo.gtSystemInfo.DualSubSliceCount = 2u; - - DrmMockEngine drm(*executionEnvironment->rootDeviceEnvironments[0]); + hwInfo.gtSystemInfo.MaxEuPerSubSlice = 0u; drm.storedEUVal = 0; drm.failRetTopology = true; 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 838959b767..9b2fe83fe0 100644 --- a/shared/test/unit_test/os_interface/linux/drm_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_tests.cpp @@ -961,9 +961,13 @@ TEST(DrmQueryTest, GivenDrmWhenSetupHardwareInfoCalledThenCorrectMaxValuesInGtSy drm.ioctlHelper.reset(); drm.setupHardwareInfo(&device, false); EXPECT_NE(nullptr, drm.getIoctlHelper()); - EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxSlicesSupported, hwInfo->gtSystemInfo.MaxSlicesSupported); + EXPECT_EQ(2u, hwInfo->gtSystemInfo.MaxSlicesSupported); EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxSubSlicesSupported, hwInfo->gtSystemInfo.MaxSubSlicesSupported); EXPECT_EQ(NEO::defaultHwInfo->gtSystemInfo.MaxEuPerSubSlice, hwInfo->gtSystemInfo.MaxEuPerSubSlice); + + for (uint32_t i = 0; i < hwInfo->gtSystemInfo.SliceCount; i++) { + EXPECT_TRUE(hwInfo->gtSystemInfo.SliceInfo[i].Enabled); + } } TEST(DrmQueryTest, GivenLessAvailableSubSlicesThanMaxSubSlicesWhenQueryingTopologyInfoThenCorrectMaxSubSliceCountIsSet) { diff --git a/shared/test/unit_test/os_interface/linux/product_helper_linux_tests.cpp b/shared/test/unit_test/os_interface/linux/product_helper_linux_tests.cpp index 5071e4b739..ab2bbef668 100644 --- a/shared/test/unit_test/os_interface/linux/product_helper_linux_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/product_helper_linux_tests.cpp @@ -84,22 +84,6 @@ TEST_F(MockProductHelperTestLinux, givenDisabledPlatformCoherencyWhenConfiguring EXPECT_FALSE(outHwInfo.capabilityTable.ftrSupportsCoherency); } -TEST_F(MockProductHelperTestLinux, GivenFailGetEuCountWhenConfiguringHwInfoThenFails) { - drm->storedRetValForEUVal = -4; - drm->failRetTopology = true; - - int ret = mockProductHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(-4, ret); -} - -TEST_F(MockProductHelperTestLinux, GivenFailGetSsCountWhenConfiguringHwInfoThenFails) { - drm->storedRetValForSSVal = -5; - drm->failRetTopology = true; - - int ret = mockProductHelper->configureHwInfoDrm(&pInHwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(-5, ret); -} - TEST_F(MockProductHelperTestLinux, whenFailGettingTopologyThenFallbackToEuCountIoctl) { drm->failRetTopology = true; @@ -368,84 +352,6 @@ HWTEST2_F(HwConfigLinux, givenPlatformWithPlatformQuerySupportedWhenItIsCalledTh EXPECT_TRUE(productHelper.isPlatformQuerySupported()); } -HWTEST2_F(HwConfigLinux, GivenDifferentValuesFromTopologyQueryWhenConfiguringHwInfoThenMaxSlicesSupportedSetToAvailableCountInGtSystemInfo, MatchAny) { - auto executionEnvironment = std::make_unique(); - executionEnvironment->prepareRootDeviceEnvironments(1); - - executionEnvironment->rootDeviceEnvironments[0]->setHwInfoAndInitHelpers(NEO::defaultHwInfo.get()); - auto drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - executionEnvironment->rootDeviceEnvironments[0]->osInterface = std::make_unique(); - auto osInterface = executionEnvironment->rootDeviceEnvironments[0]->osInterface.get(); - osInterface->setDriverModel(std::unique_ptr(drm)); - - auto hwInfo = *executionEnvironment->rootDeviceEnvironments[0]->getHardwareInfo(); - HardwareInfo outHwInfo; - auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper(); - - hwInfo.gtSystemInfo.MaxSubSlicesSupported = drm->storedSSVal * 2; - hwInfo.gtSystemInfo.MaxDualSubSlicesSupported = drm->storedSSVal * 2; - hwInfo.gtSystemInfo.MaxEuPerSubSlice = 16; - hwInfo.gtSystemInfo.MaxSlicesSupported = drm->storedSVal * 4; - - int ret = productHelper.configureHwInfoDrm(&hwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(static_cast(drm->storedSSVal * 2), outHwInfo.gtSystemInfo.MaxSubSlicesSupported); - EXPECT_EQ(static_cast(drm->storedSSVal * 2), outHwInfo.gtSystemInfo.MaxDualSubSlicesSupported); - EXPECT_EQ(16u, outHwInfo.gtSystemInfo.MaxEuPerSubSlice); - EXPECT_EQ(static_cast(drm->storedSVal), outHwInfo.gtSystemInfo.MaxSlicesSupported); - - drm->storedSVal = 3; - drm->storedSSVal = 12; - drm->storedEUVal = 12 * 8; - - hwInfo.gtSystemInfo.MaxSubSlicesSupported = drm->storedSSVal / 2; - hwInfo.gtSystemInfo.MaxDualSubSlicesSupported = drm->storedSSVal / 2; - hwInfo.gtSystemInfo.MaxEuPerSubSlice = 6; - hwInfo.gtSystemInfo.MaxSlicesSupported = drm->storedSVal / 2; - - ret = productHelper.configureHwInfoDrm(&hwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(0, ret); - - EXPECT_EQ(12u, outHwInfo.gtSystemInfo.MaxSubSlicesSupported); - EXPECT_EQ(6u, outHwInfo.gtSystemInfo.MaxEuPerSubSlice); // MaxEuPerSubslice is preserved - EXPECT_EQ(static_cast(drm->storedSVal), outHwInfo.gtSystemInfo.MaxSlicesSupported); - - EXPECT_EQ(outHwInfo.gtSystemInfo.MaxSubSlicesSupported, outHwInfo.gtSystemInfo.MaxDualSubSlicesSupported); - - hwInfo.gtSystemInfo.MaxEuPerSubSlice = 0; - - ret = productHelper.configureHwInfoDrm(&hwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(0, ret); - EXPECT_EQ(8u, outHwInfo.gtSystemInfo.MaxEuPerSubSlice); -} - -HWTEST2_F(HwConfigLinux, givenSliceCountWhenConfigureHwInfoDrmThenProperInitializationInSliceInfoEnabled, MatchAny) { - auto executionEnvironment = std::make_unique(); - executionEnvironment->prepareRootDeviceEnvironments(1); - - executionEnvironment->rootDeviceEnvironments[0]->setHwInfoAndInitHelpers(NEO::defaultHwInfo.get()); - auto drm = new DrmMock(*executionEnvironment->rootDeviceEnvironments[0]); - executionEnvironment->rootDeviceEnvironments[0]->osInterface = std::make_unique(); - - auto osInterface = executionEnvironment->rootDeviceEnvironments[0]->osInterface.get(); - osInterface->setDriverModel(std::unique_ptr(drm)); - - auto hwInfo = *executionEnvironment->rootDeviceEnvironments[0]->getHardwareInfo(); - HardwareInfo outHwInfo; - auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper(); - uint32_t sliceCount = 4; - drm->storedSVal = sliceCount; - hwInfo.gtSystemInfo.SliceCount = sliceCount; - - int ret = productHelper.configureHwInfoDrm(&hwInfo, &outHwInfo, *executionEnvironment->rootDeviceEnvironments[0].get()); - EXPECT_EQ(0, ret); - - for (uint32_t i = 0; i < sliceCount; i++) { - EXPECT_TRUE(outHwInfo.gtSystemInfo.SliceInfo[i].Enabled); - } -} - HWTEST2_F(ProductHelperTest, givenProductHelperWhenIsPlatformQueryNotSupportedThenReturnFalse, IsAtLeastMtl) { EXPECT_TRUE(productHelper->isPlatformQuerySupported()); diff --git a/shared/test/unit_test/xe2_hpg_core/bmg/linux/product_helper_tests_bmg_linux.cpp b/shared/test/unit_test/xe2_hpg_core/bmg/linux/product_helper_tests_bmg_linux.cpp index a34122eac0..8046567eb1 100644 --- a/shared/test/unit_test/xe2_hpg_core/bmg/linux/product_helper_tests_bmg_linux.cpp +++ b/shared/test/unit_test/xe2_hpg_core/bmg/linux/product_helper_tests_bmg_linux.cpp @@ -90,7 +90,7 @@ BMGTEST_F(BmgProductHelperLinux, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 0u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/xe2_hpg_core/lnl/linux/product_helper_tests_lnl_linux.cpp b/shared/test/unit_test/xe2_hpg_core/lnl/linux/product_helper_tests_lnl_linux.cpp index 5d2a26c3ad..852b6a125d 100644 --- a/shared/test/unit_test/xe2_hpg_core/lnl/linux/product_helper_tests_lnl_linux.cpp +++ b/shared/test/unit_test/xe2_hpg_core/lnl/linux/product_helper_tests_lnl_linux.cpp @@ -90,7 +90,7 @@ LNLTEST_F(LnlHwInfoLinux, WhenGtIsSetupThenGtSystemInfoIsCorrect) { EXPECT_GT(gtSystemInfo.SubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); EXPECT_EQ(gtSystemInfo.CsrSizeInMb, 0u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); } diff --git a/shared/test/unit_test/xe_hpg_core/arl/linux/product_helper_tests_arl.cpp b/shared/test/unit_test/xe_hpg_core/arl/linux/product_helper_tests_arl.cpp index 821fff865a..1c36a4db62 100644 --- a/shared/test/unit_test/xe_hpg_core/arl/linux/product_helper_tests_arl.cpp +++ b/shared/test/unit_test/xe_hpg_core/arl/linux/product_helper_tests_arl.cpp @@ -82,7 +82,7 @@ ARLTEST_F(ArlHwInfoLinux, whenSetupHardwareInfoThenGtSetupIsCorrect) { EXPECT_GT(gtSystemInfo.SubSliceCount, 0u); EXPECT_GT(gtSystemInfo.DualSubSliceCount, 0u); EXPECT_GT_VAL(gtSystemInfo.L3CacheSizeInKb, 0u); - EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated); + EXPECT_TRUE(gtSystemInfo.IsDynamicallyPopulated); EXPECT_GT(gtSystemInfo.MaxDualSubSlicesSupported, 0u); EXPECT_GT(gtSystemInfo.MaxSlicesSupported, 0u); EXPECT_GT(gtSystemInfo.MaxSubSlicesSupported, 0u);