fix(sysman): Add WA to provide CPU timestamp for engine stats

Related-To: NEO-10551

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
This commit is contained in:
Bellekallu Rajkiran
2024-06-25 14:51:32 +00:00
committed by Compute-Runtime-Automation
parent 0f8d956592
commit be2cd522af
3 changed files with 20 additions and 7 deletions

View File

@@ -19,7 +19,6 @@ using namespace NEO;
namespace L0 {
namespace ult {
constexpr int64_t mockPmuFd = 10;
constexpr uint64_t mockTimestamp = 87654321;
constexpr uint64_t mockActiveTime = 987654321;
constexpr uint16_t invalidEngineClass = UINT16_MAX;
const std::string deviceDir("device");
@@ -107,6 +106,7 @@ struct MockEnginePmuInterfaceImpPrelim : public PmuInterfaceImp {
bool mockPerfEventOpenRead = false;
int32_t mockErrorNumber = -ENOSPC;
int32_t mockPerfEventOpenFailAtCount = 1;
uint64_t mockTimestamp = 87654321;
int64_t perfEventOpen(perf_event_attr *attr, pid_t pid, int cpu, int groupFd, uint64_t flags) override {

View File

@@ -237,7 +237,7 @@ TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleAndIntegratedDeviceWhenCall
ASSERT_NE(nullptr, handle);
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetActivity(handle, &stats));
EXPECT_EQ(mockActiveTime, stats.activeTime);
EXPECT_EQ(mockTimestamp, stats.timestamp);
EXPECT_EQ(pPmuInterface->mockTimestamp, stats.timestamp);
}
}
@@ -253,7 +253,7 @@ TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleAndDiscreteDeviceWhenCallin
ASSERT_NE(nullptr, handle);
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetActivity(handle, &stats));
EXPECT_EQ(mockActiveTime, stats.activeTime);
EXPECT_EQ(mockTimestamp, stats.timestamp);
EXPECT_EQ(pPmuInterface->mockTimestamp, stats.timestamp);
}
}
@@ -277,7 +277,7 @@ TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleAndDiscreteDeviceWhenCallin
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetActivityExt(handle, &count, engineStats.data()));
for (auto &stat : engineStats) {
EXPECT_EQ(mockActiveTime, stat.activeTime);
EXPECT_EQ(mockTimestamp, stat.timestamp);
EXPECT_EQ(pPmuInterface->mockTimestamp, stat.timestamp);
}
}
}
@@ -304,7 +304,7 @@ TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleAndDiscreteDeviceWhenCallin
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetActivityExt(handle, &count, engineStats.data()));
for (auto &stat : engineStats) {
EXPECT_EQ(mockActiveTime, stat.activeTime);
EXPECT_EQ(mockTimestamp, stat.timestamp);
EXPECT_EQ(pPmuInterface->mockTimestamp, stat.timestamp);
}
}
}
@@ -494,6 +494,20 @@ TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleWhenCallingZesEngineGetActi
}
}
TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleAndPmuTimeStampIsZeroWhenCallingZesEngineGetActivityThenVerifyValidTimeStampIsReturned) {
zes_engine_stats_t stats = {};
auto handles = getEngineHandles(handleComponentCount);
EXPECT_EQ(handleComponentCount, handles.size());
pPmuInterface->mockTimestamp = 0u;
for (auto handle : handles) {
ASSERT_NE(nullptr, handle);
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetActivity(handle, &stats));
EXPECT_EQ(mockActiveTime, stats.activeTime);
EXPECT_GT(stats.timestamp, 0u);
}
}
TEST_F(ZesEngineFixturePrelim, GivenValidEngineHandleWhenCallingZesEngineGetActivityAndperfEventOpenFailsThenVerifyEngineGetActivityReturnsFailure) {
pPmuInterface->mockPerfEventOpenRead = true;