From 48bbf12eb5abb18c3ce0777e8e57827dcbce75fd Mon Sep 17 00:00:00 2001 From: shubham kumar Date: Tue, 15 Apr 2025 06:45:56 +0000 Subject: [PATCH] fix: correct gfx_core_helper definitions for EUSS Related-To: NEO-14337 Signed-off-by: shubham kumar --- .../l0_gfx_core_helper_skl_to_pvc.inl | 176 ------------------ .../l0_gfx_core_helper_tgllp_to_dg2.inl | 29 ++- .../l0_gfx_core_helper_xe_hpc_core.cpp | 176 ++++++++++++++++++ .../test_l0_gfx_core_helper_gen12lp.cpp | 34 ++++ .../test_l0_gfx_core_helper_xe_hpg_core.cpp | 34 ++++ .../metrics/metric_ip_sampling_fixture.h | 3 +- .../test_metric_ip_sampling_enumeration.cpp | 32 ++-- shared/test/common/test_macros/hw_test.h | 8 + 8 files changed, 297 insertions(+), 195 deletions(-) diff --git a/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_skl_to_pvc.inl b/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_skl_to_pvc.inl index 35a0db0b3f..40686f6b1f 100644 --- a/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_skl_to_pvc.inl +++ b/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_skl_to_pvc.inl @@ -38,182 +38,6 @@ bool L0GfxCoreHelperHw::forceDefaultUsmCompressionSupport() const { return false; } -/* - * stall sample data item format: - * - * Bits Field - * 0 to 28 IP (addr) - * 29 to 36 active count - * 37 to 44 other count - * 45 to 52 control count - * 53 to 60 pipestall count - * 61 to 68 send count - * 69 to 76 dist_acc count - * 77 to 84 sbid count - * 85 to 92 sync count - * 93 to 100 inst_fetch count - * - * bytes at index 48 and 49, subSlice - * bytes at index 50 and 51, flags - * - * total size 64 bytes - */ - -#pragma pack(1) -typedef struct StallSumIpData { - uint64_t activeCount; - uint64_t otherCount; - uint64_t controlCount; - uint64_t pipeStallCount; - uint64_t sendCount; - uint64_t distAccCount; - uint64_t sbidCount; - uint64_t syncCount; - uint64_t instFetchCount; -} StallSumIpData_t; -#pragma pack() - -constexpr uint32_t ipSamplingMetricCountXe = 10u; - -template -uint32_t L0GfxCoreHelperHw::getIpSamplingMetricCount() { - return ipSamplingMetricCountXe; -} - -template -void L0GfxCoreHelperHw::stallIpDataMapDelete(std::map &stallSumIpDataMap) { - for (auto i = stallSumIpDataMap.begin(); i != stallSumIpDataMap.end(); i++) { - StallSumIpData_t *stallSumData = reinterpret_cast(i->second); - if (stallSumData) { - delete stallSumData; - i->second = nullptr; - } - } -} - -template -bool L0GfxCoreHelperHw::stallIpDataMapUpdate(std::map &stallSumIpDataMap, const uint8_t *pRawIpData) { - constexpr int ipStallSamplingOffset = 3; // Offset to read the first Stall Sampling report after IP Address. - constexpr int ipStallSamplingReportShift = 5; // Shift in bits required to read the stall sampling report data due to the IP address [0-28] bits to access the next report category data. - constexpr int stallSamplingReportCategoryMask = 0xff; // Mask for Stall Sampling Report Category. - constexpr int stallSamplingReportSubSliceAndFlagsOffset = 48; // Offset to access Stall Sampling Report Sub Slice and flags. - - const uint8_t *tempAddr = pRawIpData; - uint64_t ip = 0ULL; - memcpy_s(reinterpret_cast(&ip), sizeof(ip), tempAddr, sizeof(ip)); - ip &= 0x1fffffff; - StallSumIpData_t *stallSumData = nullptr; - if (stallSumIpDataMap.count(ip) == 0) { - stallSumData = new StallSumIpData_t{}; - stallSumData->activeCount = 0; - stallSumData->otherCount = 0; - stallSumData->controlCount = 0; - stallSumData->pipeStallCount = 0; - stallSumData->sendCount = 0; - stallSumData->distAccCount = 0; - stallSumData->sbidCount = 0; - stallSumData->syncCount = 0; - stallSumData->instFetchCount = 0; - stallSumIpDataMap[ip] = stallSumData; - } else { - stallSumData = reinterpret_cast(stallSumIpDataMap[ip]); - } - tempAddr += ipStallSamplingOffset; - - auto getCount = [&tempAddr]() { - uint16_t tempCount = 0; - memcpy_s(reinterpret_cast(&tempCount), sizeof(tempCount), tempAddr, sizeof(tempCount)); - tempCount = (tempCount >> ipStallSamplingReportShift) & stallSamplingReportCategoryMask; - tempAddr += 1; - return static_cast(tempCount); - }; - - stallSumData->activeCount += getCount(); - stallSumData->otherCount += getCount(); - stallSumData->controlCount += getCount(); - stallSumData->pipeStallCount += getCount(); - stallSumData->sendCount += getCount(); - stallSumData->distAccCount += getCount(); - stallSumData->sbidCount += getCount(); - stallSumData->syncCount += getCount(); - stallSumData->instFetchCount += getCount(); - -#pragma pack(1) - struct StallCntrInfo { - uint16_t subslice; - uint16_t flags; - } stallCntrInfo = {}; -#pragma pack() - - tempAddr = pRawIpData + stallSamplingReportSubSliceAndFlagsOffset; - memcpy_s(reinterpret_cast(&stallCntrInfo), sizeof(stallCntrInfo), tempAddr, sizeof(stallCntrInfo)); - - constexpr int32_t overflowDropFlag = (1 << 8); - return stallCntrInfo.flags & overflowDropFlag; -} - -// Order of ipDataValues must match stallSamplingReportList -template -void L0GfxCoreHelperHw::stallSumIpDataToTypedValues(uint64_t ip, void *sumIpData, std::vector &ipDataValues) { - StallSumIpData_t *stallSumData = reinterpret_cast(sumIpData); - zet_typed_value_t tmpValueData; - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = ip; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->activeCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->controlCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->pipeStallCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->sendCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->distAccCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->sbidCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->syncCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->instFetchCount; - ipDataValues.push_back(tmpValueData); - - tmpValueData.type = ZET_VALUE_TYPE_UINT64; - tmpValueData.value.ui64 = stallSumData->otherCount; - ipDataValues.push_back(tmpValueData); -} - -template -std::vector> L0GfxCoreHelperHw::getStallSamplingReportMetrics() const { - std::vector> stallSamplingReportList = { - {"Active", "Active cycles"}, - {"ControlStall", "Stall on control"}, - {"PipeStall", "Stall on pipe"}, - {"SendStall", "Stall on send"}, - {"DistStall", "Stall on distance"}, - {"SbidStall", "Stall on scoreboard"}, - {"SyncStall", "Stall on sync"}, - {"InstrFetchStall", "Stall on instruction fetch"}, - {"OtherStall", "Stall on other condition"}, - }; - return stallSamplingReportList; -} - template uint64_t L0GfxCoreHelperHw::getOaTimestampValidBits() const { constexpr uint64_t oaTimestampValidBits = 32u; diff --git a/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_tgllp_to_dg2.inl b/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_tgllp_to_dg2.inl index 9763145f41..50206d12d8 100644 --- a/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_tgllp_to_dg2.inl +++ b/level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper_tgllp_to_dg2.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -117,4 +117,31 @@ bool L0GfxCoreHelperHw::synchronizedDispatchSupported() const { return false; } +template +uint32_t L0GfxCoreHelperHw::getIpSamplingMetricCount() { + return 0; +} + +template +void L0GfxCoreHelperHw::stallIpDataMapDelete(std::map &stallSumIpDataMap) { + return; +} + +template +bool L0GfxCoreHelperHw::stallIpDataMapUpdate(std::map &stallSumIpDataMap, const uint8_t *pRawIpData) { + return false; +} + +// Order of ipDataValues must match stallSamplingReportList +template +void L0GfxCoreHelperHw::stallSumIpDataToTypedValues(uint64_t ip, void *sumIpData, std::vector &ipDataValues) { + return; +} + +template +std::vector> L0GfxCoreHelperHw::getStallSamplingReportMetrics() const { + std::vector> stallSamplingReportList = {}; + return stallSamplingReportList; +} + } // namespace L0 diff --git a/level_zero/core/source/xe_hpc_core/l0_gfx_core_helper_xe_hpc_core.cpp b/level_zero/core/source/xe_hpc_core/l0_gfx_core_helper_xe_hpc_core.cpp index 23d264058a..0c263b6fa0 100644 --- a/level_zero/core/source/xe_hpc_core/l0_gfx_core_helper_xe_hpc_core.cpp +++ b/level_zero/core/source/xe_hpc_core/l0_gfx_core_helper_xe_hpc_core.cpp @@ -33,6 +33,182 @@ bool L0GfxCoreHelperHw::platformSupportsStateBaseAddressTracking(const N return true; } +/* + * stall sample data item format: + * + * Bits Field + * 0 to 28 IP (addr) + * 29 to 36 active count + * 37 to 44 other count + * 45 to 52 control count + * 53 to 60 pipestall count + * 61 to 68 send count + * 69 to 76 dist_acc count + * 77 to 84 sbid count + * 85 to 92 sync count + * 93 to 100 inst_fetch count + * + * bytes at index 48 and 49, subSlice + * bytes at index 50 and 51, flags + * + * total size 64 bytes + */ + +#pragma pack(1) +typedef struct StallSumIpData { + uint64_t activeCount; + uint64_t otherCount; + uint64_t controlCount; + uint64_t pipeStallCount; + uint64_t sendCount; + uint64_t distAccCount; + uint64_t sbidCount; + uint64_t syncCount; + uint64_t instFetchCount; +} StallSumIpData_t; +#pragma pack() + +constexpr uint32_t ipSamplingMetricCountXe = 10u; + +template <> +uint32_t L0GfxCoreHelperHw::getIpSamplingMetricCount() { + return ipSamplingMetricCountXe; +} + +template <> +void L0GfxCoreHelperHw::stallIpDataMapDelete(std::map &stallSumIpDataMap) { + for (auto i = stallSumIpDataMap.begin(); i != stallSumIpDataMap.end(); i++) { + StallSumIpData_t *stallSumData = reinterpret_cast(i->second); + if (stallSumData) { + delete stallSumData; + i->second = nullptr; + } + } +} + +template <> +bool L0GfxCoreHelperHw::stallIpDataMapUpdate(std::map &stallSumIpDataMap, const uint8_t *pRawIpData) { + constexpr int ipStallSamplingOffset = 3; // Offset to read the first Stall Sampling report after IP Address. + constexpr int ipStallSamplingReportShift = 5; // Shift in bits required to read the stall sampling report data due to the IP address [0-28] bits to access the next report category data. + constexpr int stallSamplingReportCategoryMask = 0xff; // Mask for Stall Sampling Report Category. + constexpr int stallSamplingReportSubSliceAndFlagsOffset = 48; // Offset to access Stall Sampling Report Sub Slice and flags. + + const uint8_t *tempAddr = pRawIpData; + uint64_t ip = 0ULL; + memcpy_s(reinterpret_cast(&ip), sizeof(ip), tempAddr, sizeof(ip)); + ip &= 0x1fffffff; + StallSumIpData_t *stallSumData = nullptr; + if (stallSumIpDataMap.count(ip) == 0) { + stallSumData = new StallSumIpData_t{}; + stallSumData->activeCount = 0; + stallSumData->otherCount = 0; + stallSumData->controlCount = 0; + stallSumData->pipeStallCount = 0; + stallSumData->sendCount = 0; + stallSumData->distAccCount = 0; + stallSumData->sbidCount = 0; + stallSumData->syncCount = 0; + stallSumData->instFetchCount = 0; + stallSumIpDataMap[ip] = stallSumData; + } else { + stallSumData = reinterpret_cast(stallSumIpDataMap[ip]); + } + tempAddr += ipStallSamplingOffset; + + auto getCount = [&tempAddr]() { + uint16_t tempCount = 0; + memcpy_s(reinterpret_cast(&tempCount), sizeof(tempCount), tempAddr, sizeof(tempCount)); + tempCount = (tempCount >> ipStallSamplingReportShift) & stallSamplingReportCategoryMask; + tempAddr += 1; + return static_cast(tempCount); + }; + + stallSumData->activeCount += getCount(); + stallSumData->otherCount += getCount(); + stallSumData->controlCount += getCount(); + stallSumData->pipeStallCount += getCount(); + stallSumData->sendCount += getCount(); + stallSumData->distAccCount += getCount(); + stallSumData->sbidCount += getCount(); + stallSumData->syncCount += getCount(); + stallSumData->instFetchCount += getCount(); + +#pragma pack(1) + struct StallCntrInfo { + uint16_t subslice; + uint16_t flags; + } stallCntrInfo = {}; +#pragma pack() + + tempAddr = pRawIpData + stallSamplingReportSubSliceAndFlagsOffset; + memcpy_s(reinterpret_cast(&stallCntrInfo), sizeof(stallCntrInfo), tempAddr, sizeof(stallCntrInfo)); + + constexpr int32_t overflowDropFlag = (1 << 8); + return stallCntrInfo.flags & overflowDropFlag; +} + +// Order of ipDataValues must match stallSamplingReportList +template <> +void L0GfxCoreHelperHw::stallSumIpDataToTypedValues(uint64_t ip, void *sumIpData, std::vector &ipDataValues) { + StallSumIpData_t *stallSumData = reinterpret_cast(sumIpData); + zet_typed_value_t tmpValueData; + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = ip; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->activeCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->controlCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->pipeStallCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->sendCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->distAccCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->sbidCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->syncCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->instFetchCount; + ipDataValues.push_back(tmpValueData); + + tmpValueData.type = ZET_VALUE_TYPE_UINT64; + tmpValueData.value.ui64 = stallSumData->otherCount; + ipDataValues.push_back(tmpValueData); +} + +template <> +std::vector> L0GfxCoreHelperHw::getStallSamplingReportMetrics() const { + std::vector> stallSamplingReportList = { + {"Active", "Active cycles"}, + {"ControlStall", "Stall on control"}, + {"PipeStall", "Stall on pipe"}, + {"SendStall", "Stall on send"}, + {"DistStall", "Stall on distance"}, + {"SbidStall", "Stall on scoreboard"}, + {"SyncStall", "Stall on sync"}, + {"InstrFetchStall", "Stall on instruction fetch"}, + {"OtherStall", "Stall on other condition"}, + }; + return stallSamplingReportList; +} + template class L0GfxCoreHelperHw; } // namespace L0 diff --git a/level_zero/core/test/unit_tests/gen12lp/test_l0_gfx_core_helper_gen12lp.cpp b/level_zero/core/test/unit_tests/gen12lp/test_l0_gfx_core_helper_gen12lp.cpp index 12e7cecc5e..c7f15a6826 100644 --- a/level_zero/core/test/unit_tests/gen12lp/test_l0_gfx_core_helper_gen12lp.cpp +++ b/level_zero/core/test/unit_tests/gen12lp/test_l0_gfx_core_helper_gen12lp.cpp @@ -76,5 +76,39 @@ GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenGettingSupportedRTASFo EXPECT_EQ(ZE_RTAS_FORMAT_EXP_INVALID, l0GfxCoreHelper.getSupportedRTASFormat()); } +GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenGetIpSamplingMetricCountIsCalledThenProperValueIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + EXPECT_EQ(0u, l0GfxCoreHelper.getIpSamplingMetricCount()); +} + +GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenGetStallSamplingReportMetricsThenEmptyListIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + std::vector> expectedStallSamplingReportList = {}; + EXPECT_EQ(expectedStallSamplingReportList, l0GfxCoreHelper.getStallSamplingReportMetrics()); +} + +GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenStallIpDataMapUpdateIsCalledThenFalseIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + std::map stallSumIpDataMap; + EXPECT_FALSE(l0GfxCoreHelper.stallIpDataMapUpdate(stallSumIpDataMap, nullptr)); +} + +GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenStallIpDataMapDeleteIsCalledThenMapisUnchanged) { + auto &l0GfxCoreHelper = getHelper(); + std::map stallSumIpDataMap; + size_t mapSizeBefore = stallSumIpDataMap.size(); + l0GfxCoreHelper.stallIpDataMapDelete(stallSumIpDataMap); + EXPECT_EQ(mapSizeBefore, stallSumIpDataMap.size()); +} + +GEN12LPTEST_F(L0GfxCoreHelperTestGen12Lp, GivenGen12LpWhenStallSumIpDataToTypedValuesIsCalledThenNoChangeToDataValues) { + auto &l0GfxCoreHelper = getHelper(); + uint64_t ip = 0ull; + void *sumIpData = nullptr; + std::vector ipDataValues; + l0GfxCoreHelper.stallSumIpDataToTypedValues(ip, sumIpData, ipDataValues); + EXPECT_EQ(0u, ipDataValues.size()); +} + } // namespace ult } // namespace L0 diff --git a/level_zero/core/test/unit_tests/xe_hpg_core/test_l0_gfx_core_helper_xe_hpg_core.cpp b/level_zero/core/test/unit_tests/xe_hpg_core/test_l0_gfx_core_helper_xe_hpg_core.cpp index 0a4ca79665..5b9ad29041 100644 --- a/level_zero/core/test/unit_tests/xe_hpg_core/test_l0_gfx_core_helper_xe_hpg_core.cpp +++ b/level_zero/core/test/unit_tests/xe_hpg_core/test_l0_gfx_core_helper_xe_hpg_core.cpp @@ -79,5 +79,39 @@ XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenGettingCmdlistUpdateCa EXPECT_EQ(62u, l0GfxCoreHelper.getPlatformCmdListUpdateCapabilities()); } +XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenGetIpSamplingMetricCountIsCalledThenProperValueIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + EXPECT_EQ(0u, l0GfxCoreHelper.getIpSamplingMetricCount()); +} + +XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenGetStallSamplingReportMetricsThenEmptyListIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + std::vector> expectedStallSamplingReportList = {}; + EXPECT_EQ(expectedStallSamplingReportList, l0GfxCoreHelper.getStallSamplingReportMetrics()); +} + +XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenStallIpDataMapUpdateIsCalledThenFalseIsReturned) { + auto &l0GfxCoreHelper = getHelper(); + std::map stallSumIpDataMap; + EXPECT_FALSE(l0GfxCoreHelper.stallIpDataMapUpdate(stallSumIpDataMap, nullptr)); +} + +XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenStallIpDataMapDeleteIsCalledThenMapisUnchanged) { + auto &l0GfxCoreHelper = getHelper(); + std::map stallSumIpDataMap; + size_t mapSizeBefore = stallSumIpDataMap.size(); + l0GfxCoreHelper.stallIpDataMapDelete(stallSumIpDataMap); + EXPECT_EQ(mapSizeBefore, stallSumIpDataMap.size()); +} + +XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenStallSumIpDataToTypedValuesIsCalledThenNoChangeToDataValues) { + auto &l0GfxCoreHelper = getHelper(); + uint64_t ip = 0ull; + void *sumIpData = nullptr; + std::vector ipDataValues; + l0GfxCoreHelper.stallSumIpDataToTypedValues(ip, sumIpData, ipDataValues); + EXPECT_EQ(0u, ipDataValues.size()); +} + } // namespace ult } // namespace L0 diff --git a/level_zero/tools/test/unit_tests/sources/metrics/metric_ip_sampling_fixture.h b/level_zero/tools/test/unit_tests/sources/metrics/metric_ip_sampling_fixture.h index f7c6b99882..6f338e9685 100644 --- a/level_zero/tools/test/unit_tests/sources/metrics/metric_ip_sampling_fixture.h +++ b/level_zero/tools/test/unit_tests/sources/metrics/metric_ip_sampling_fixture.h @@ -18,8 +18,7 @@ namespace L0 { namespace ult { class MockMetricIpSamplingOsInterface; -using EustallSupportedPlatforms = IsWithinProducts; -using IsGen9ToPVC = IsWithinProducts; +using EustallSupportedPlatforms = IsProduct; class MockStallRawIpData { public: diff --git a/level_zero/tools/test/unit_tests/sources/metrics/test_metric_ip_sampling_enumeration.cpp b/level_zero/tools/test/unit_tests/sources/metrics/test_metric_ip_sampling_enumeration.cpp index 268e0073e5..d56f44e9c3 100644 --- a/level_zero/tools/test/unit_tests/sources/metrics/test_metric_ip_sampling_enumeration.cpp +++ b/level_zero/tools/test/unit_tests/sources/metrics/test_metric_ip_sampling_enumeration.cpp @@ -556,7 +556,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithInvalidHeaderThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithInvalidHeaderThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -595,7 +595,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithDataFromSingleDeviceThenValidDataIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithDataFromSingleDeviceThenValidDataIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -644,7 +644,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithDataFromSingleDeviceAndInvalidRawDataThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithDataFromSingleDeviceAndInvalidRawDataThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -675,7 +675,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithLessThanRequiredMetricCountThenValidDataIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithLessThanRequiredMetricCountThenValidDataIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -733,7 +733,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithInvalidRawDataSizeThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpIsCalledWithInvalidRawDataSizeThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -762,7 +762,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpIsCalledWithInvalidRawDataSizeDuringValueCalculationPhaseThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpIsCalledWithInvalidRawDataSizeDuringValueCalculationPhaseThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -799,7 +799,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValue } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpCalculateSizeIsCalledWithInvalidRawDataSizeInHeaderDuringSizeCalculationThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpCalculateSizeIsCalledWithInvalidRawDataSizeInHeaderDuringSizeCalculationThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -828,7 +828,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValue } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpCalculateSizeIsCalledWithInvalidRawDataSizeInHeaderThenErrorIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValuesExpCalculateSizeIsCalledWithInvalidRawDataSizeInHeaderThenErrorIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -858,7 +858,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, WhenCalculateMultipleMetricValue } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpCalculateDataWithBadRawDataSizeIsCalledThenErrorUnknownIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMultipleMetricValuesExpCalculateDataWithBadRawDataSizeIsCalledThenErrorUnknownIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -904,7 +904,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledThenValidDataIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledThenValidDataIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -938,7 +938,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledWithDataFromMultipleSubdevicesThenReturnError, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledWithDataFromMultipleSubdevicesThenReturnError, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -966,7 +966,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledWithSmallValueCountThenValidDataIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesIsCalledWithSmallValueCountThenValidDataIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -1001,7 +1001,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWithBadRawDataSizeWhenCalculateMetricValuesCalculateSizeIsCalledThenErrorUnknownIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWithBadRawDataSizeWhenCalculateMetricValuesCalculateSizeIsCalledThenErrorUnknownIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -1024,7 +1024,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWith } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesWithBadRawDataSizeCalculateDataIsCalledThenUnsupportedFeatureIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCalculateMetricValuesWithBadRawDataSizeCalculateDataIsCalledThenUnsupportedFeatureIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); @@ -1053,7 +1053,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhen } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenDataOverflowOccurredWhenStreamerReadDataIscalledThenCalculateMultipleMetricsValulesExpReturnsOverflowWarning, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenDataOverflowOccurredWhenStreamerReadDataIscalledThenCalculateMultipleMetricsValulesExpReturnsOverflowWarning, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); std::vector metricValues(30); @@ -1103,7 +1103,7 @@ HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenDataOverflowOccurredWhenStr } } -HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWithCALCULATIONTYPEMAXWhenCalculateMetricValuesIsCalledThenErrorUnknownIsReturned, IsGen9ToPVC) { +HWTEST2_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWithCALCULATIONTYPEMAXWhenCalculateMetricValuesIsCalledThenErrorUnknownIsReturned, EustallSupportedPlatforms) { EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi()); diff --git a/shared/test/common/test_macros/hw_test.h b/shared/test/common/test_macros/hw_test.h index cc7fc767fa..e38d69eaac 100644 --- a/shared/test/common/test_macros/hw_test.h +++ b/shared/test/common/test_macros/hw_test.h @@ -714,6 +714,14 @@ struct IsWithinGfxCore { } }; +template +struct IsNotWithinGfxCore { + template + static constexpr bool isMatched() { + return NEO::ToGfxCoreFamily::get() < gfxCoreFamilyMin && NEO::ToGfxCoreFamily::get() > gfxCoreFamilyMax; + } +}; + template struct IsAnyGfxCores { template