mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 23:03:02 +08:00
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:
committed by
Compute-Runtime-Automation
parent
0f8d956592
commit
be2cd522af
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user