mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
Add ZE_RESULT_WARNING_DROPPED_DATA to ip metrics
Related-To: LOCI-3106 Signed-off-by: davidoli <david.olien@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
4673a98074
commit
82d3901978
@@ -65,7 +65,7 @@ class MetricIpSamplingCalculateMetricsFixture : public MetricIpSamplingFixture {
|
||||
public:
|
||||
std::vector<MockStallRawIpData> rawDataVector = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1000, 0x01},
|
||||
{1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1000, 0x02},
|
||||
{10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1001, 0x100}, // set the overflow bit in flags
|
||||
{10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1001, 0x000},
|
||||
{10, 90, 80, 70, 60, 50, 40, 30, 20, 10, 1000, 0x3}};
|
||||
|
||||
size_t rawDataVectorSize = sizeof(rawDataVector[0]) * rawDataVector.size();
|
||||
@@ -90,6 +90,34 @@ class MetricIpSamplingCalculateMetricsFixture : public MetricIpSamplingFixture {
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}}};
|
||||
|
||||
std::vector<MockStallRawIpData> rawDataVectorOverflow = {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1000, 0x01},
|
||||
{1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1000, 0x02},
|
||||
{10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1001, 0x100}, // set the overflow bit in flags
|
||||
{10, 90, 80, 70, 60, 50, 40, 30, 20, 10, 1000, 0x3}};
|
||||
|
||||
size_t rawDataVectorOverflowSize = sizeof(rawDataVectorOverflow[0]) * rawDataVectorOverflow.size();
|
||||
std::vector<zet_typed_value_t> expectedMetricOverflowValues = {
|
||||
{ZET_VALUE_TYPE_UINT64, {1}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {11}},
|
||||
{ZET_VALUE_TYPE_UINT64, {10}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}},
|
||||
{ZET_VALUE_TYPE_UINT64, {110}}};
|
||||
};
|
||||
|
||||
} // namespace ult
|
||||
|
||||
@@ -418,6 +418,46 @@ TEST_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWhenCal
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(MetricIpSamplingCalculateMetricsTest, GivenDataOverflowOccurredWhenStreamerReadDataIscalledThenCalculateMultipleMetricsValulesExpReturnsOverflowWarning) {
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi());
|
||||
|
||||
std::vector<zet_typed_value_t> metricValues(30);
|
||||
|
||||
for (auto device : testDevices) {
|
||||
|
||||
uint32_t metricGroupCount = 0;
|
||||
zetMetricGroupGet(device->toHandle(), &metricGroupCount, nullptr);
|
||||
std::vector<zet_metric_group_handle_t> metricGroups;
|
||||
metricGroups.resize(metricGroupCount);
|
||||
ASSERT_EQ(zetMetricGroupGet(device->toHandle(), &metricGroupCount, metricGroups.data()), ZE_RESULT_SUCCESS);
|
||||
ASSERT_NE(metricGroups[0], nullptr);
|
||||
zet_metric_group_properties_t metricGroupProperties;
|
||||
EXPECT_EQ(zetMetricGroupGetProperties(metricGroups[0], &metricGroupProperties), ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(strcmp(metricGroupProperties.name, "EuStallSampling"), 0);
|
||||
|
||||
uint32_t setCount = 0;
|
||||
uint32_t totalMetricValueCount = 0;
|
||||
std::vector<uint32_t> metricCounts(2);
|
||||
EXPECT_EQ(L0::zetMetricGroupCalculateMultipleMetricValuesExp(metricGroups[0],
|
||||
ZET_METRIC_GROUP_CALCULATION_TYPE_METRIC_VALUES, rawDataVectorOverflowSize, reinterpret_cast<uint8_t *>(rawDataVectorOverflow.data()),
|
||||
&setCount, &totalMetricValueCount, metricCounts.data(), nullptr),
|
||||
ZE_RESULT_SUCCESS);
|
||||
EXPECT_TRUE(setCount == 1);
|
||||
EXPECT_TRUE(totalMetricValueCount == 40);
|
||||
EXPECT_EQ(L0::zetMetricGroupCalculateMultipleMetricValuesExp(metricGroups[0],
|
||||
ZET_METRIC_GROUP_CALCULATION_TYPE_METRIC_VALUES, rawDataVectorOverflowSize, reinterpret_cast<uint8_t *>(rawDataVectorOverflow.data()),
|
||||
&setCount, &totalMetricValueCount, metricCounts.data(), metricValues.data()),
|
||||
ZE_RESULT_WARNING_DROPPED_DATA);
|
||||
EXPECT_TRUE(setCount == 1);
|
||||
EXPECT_TRUE(totalMetricValueCount == 20);
|
||||
EXPECT_TRUE(metricCounts[0] == 20);
|
||||
for (uint32_t i = 0; i < totalMetricValueCount; i++) {
|
||||
EXPECT_TRUE(expectedMetricOverflowValues[i].type == metricValues[i].type);
|
||||
EXPECT_TRUE(expectedMetricOverflowValues[i].value.ui64 == metricValues[i].value.ui64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(MetricIpSamplingCalculateMetricsTest, GivenEnumerationIsSuccessfulWithCALCULATIONTYPEMAXWhenCalculateMetricValuesIsCalledThenErrorUnknownIsReturned) {
|
||||
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi());
|
||||
|
||||
Reference in New Issue
Block a user