diff --git a/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp b/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp index 9dcd5a6d29..d46a89f70d 100644 --- a/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp +++ b/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp @@ -291,7 +291,6 @@ std::unique_ptr IoctlHelperXe::createMemoryInfo() { auto regionIndex = Math::log2(nearMemRegions); UNRECOVERABLE_IF(!memoryRegionInstances[regionIndex]); regionsContainer.push_back(createMemoryRegionFromXeMemRegion(*memoryRegionInstances[regionIndex])); - xeTimestampFrequency = xeGtListData->gt_list[i].reference_clock; } } return std::make_unique(regionsContainer, drm); @@ -335,11 +334,6 @@ bool IoctlHelperXe::setGpuCpuTimes(TimeStampData *pGpuCpuTime, OSTime *osTime) { return ret == 0; } -bool IoctlHelperXe::getTimestampFrequency(uint64_t &frequency) { - frequency = xeTimestampFrequency; - return frequency != 0; -} - void IoctlHelperXe::getTopologyData(size_t nTiles, std::vector> *geomDss, std::vector> *computeDss, std::vector> *euDss, DrmQueryTopologyData &topologyData, bool &isComputeDssEmpty) { int subSliceCount = 0; @@ -899,10 +893,7 @@ int IoctlHelperXe::ioctl(DrmIoctl request, void *arg) { ret = 0; switch (getParam->param) { case static_cast(DrmParam::paramCsTimestampFrequency): { - uint64_t frequency = 0; - if (getTimestampFrequency(frequency)) { - *getParam->value = static_cast(frequency); - } + *getParam->value = xeGtListData->gt_list[defaultEngine->gt_id].reference_clock; } break; default: ret = -1; diff --git a/shared/source/os_interface/linux/xe/ioctl_helper_xe.h b/shared/source/os_interface/linux/xe/ioctl_helper_xe.h index 6f54bb9190..e28927ac5f 100644 --- a/shared/source/os_interface/linux/xe/ioctl_helper_xe.h +++ b/shared/source/os_interface/linux/xe/ioctl_helper_xe.h @@ -109,8 +109,6 @@ class IoctlHelperXe : public IoctlHelper { void getTopologyMap(size_t nTiles, std::vector> *dssInfo, TopologyMap &topologyMap); bool setGpuCpuTimes(TimeStampData *pGpuCpuTime, OSTime *osTime) override; - bool getTimestampFrequency(uint64_t &frequency); - void fillBindInfoForIpcHandle(uint32_t handle, size_t size) override; bool getFdFromVmExport(uint32_t vmId, uint32_t flags, int32_t *fd) override; bool isImmediateVmBindRequired() const override; @@ -164,7 +162,6 @@ class IoctlHelperXe : public IoctlHelper { int maxExecQueuePriority = 0; std::mutex xeLock; std::vector bindInfo; - uint32_t xeTimestampFrequency = 0; std::vector hwconfig; std::vector contextParamEngine; diff --git a/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.cpp b/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.cpp index c55488570e..6d505ed08e 100644 --- a/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.cpp @@ -532,6 +532,7 @@ TEST(IoctlHelperXeTest, whenCallingIoctlThenProperValueIsReturned) { auto executionEnvironment = std::make_unique(); DrmMockXe drm{*executionEnvironment->rootDeviceEnvironments[0]}; auto mockXeIoctlHelper = std::make_unique(drm); + mockXeIoctlHelper->initialize(); drm.reset(); { @@ -674,10 +675,9 @@ TEST(IoctlHelperXeTest, whenCallingIoctlThenProperValueIsReturned) { ret = mockXeIoctlHelper->ioctl(DrmIoctl::getparam, &test); EXPECT_EQ(-1, ret); test.param = static_cast(DrmParam::paramCsTimestampFrequency); - mockXeIoctlHelper->xeTimestampFrequency = 1; ret = mockXeIoctlHelper->ioctl(DrmIoctl::getparam, &test); EXPECT_EQ(0, ret); - EXPECT_EQ(dstvalue, 1); + EXPECT_EQ(static_cast(dstvalue), DrmMockXe::mockTimestampFrequency); } EXPECT_THROW(mockXeIoctlHelper->ioctl(DrmIoctl::gemContextCreateExt, NULL), std::runtime_error); drm.reset(); @@ -1599,37 +1599,6 @@ TEST(IoctlHelperXeTest, whenFillBindInfoForIpcHandleIsCalledThenBindInfoIsCorrec EXPECT_EQ(bindInfo.size, size); } -TEST(IoctlHelperXeTest, givenIoctlFailureWhenGetTimestampFrequencyIsCalledThenFalseIsReturned) { - DebugManagerStateRestore restorer; - auto executionEnvironment = std::make_unique(); - DrmMockXe drm{*executionEnvironment->rootDeviceEnvironments[0]}; - auto xeIoctlHelper = std::make_unique(drm); - auto engineInfo = xeIoctlHelper->createEngineInfo(false); - ASSERT_NE(nullptr, engineInfo); - - drm.testMode(1, -1); - uint64_t frequency; - auto ret = xeIoctlHelper->getTimestampFrequency(frequency); - EXPECT_EQ(false, ret); -} - -TEST(IoctlHelperXeTest, whenGetTimestampFrequencyIsCalledThenProperFrequencyIsSet) { - DebugManagerStateRestore restorer; - auto executionEnvironment = std::make_unique(); - DrmMockXe drm{*executionEnvironment->rootDeviceEnvironments[0]}; - auto xeIoctlHelper = std::make_unique(drm); - auto engineInfo = xeIoctlHelper->createEngineInfo(false); - ASSERT_NE(nullptr, engineInfo); - - uint32_t expectedFrequency = 100; - xeIoctlHelper->xeTimestampFrequency = expectedFrequency; - - uint64_t frequency = 0; - auto ret = xeIoctlHelper->getTimestampFrequency(frequency); - EXPECT_EQ(true, ret); - EXPECT_EQ(expectedFrequency, frequency); -} - TEST(IoctlHelperXeTest, givenIoctlFailureWhenSetGpuCpuTimesIsCalledThenFalseIsReturned) { DebugManagerStateRestore restorer; auto executionEnvironment = std::make_unique(); diff --git a/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.h b/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.h index 0ca9286bbe..29c3f1a98f 100644 --- a/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.h +++ b/shared/test/unit_test/os_interface/linux/xe/ioctl_helper_xe_tests.h @@ -45,7 +45,6 @@ struct MockIoctlHelperXe : IoctlHelperXe { using IoctlHelperXe::xeGetengineClassName; using IoctlHelperXe::xeGtListData; using IoctlHelperXe::xeShowBindTable; - using IoctlHelperXe::xeTimestampFrequency; }; inline constexpr int testValueVmId = 0x5764; @@ -108,7 +107,7 @@ class DrmMockXe : public DrmMockCustom { 0, // tile_id 0, // gt_id {0}, // padding - 12500000, // reference_clock + mockTimestampFrequency, // reference_clock 0b100, // native mem regions 0x011, // slow mem regions }; @@ -117,7 +116,7 @@ class DrmMockXe : public DrmMockCustom { 1, // tile_id 1, // gt_id {0}, // padding - 12500000, // reference_clock + mockTimestampFrequency, // reference_clock 0b001, // native mem regions 0x110, // slow mem regions }; @@ -126,7 +125,7 @@ class DrmMockXe : public DrmMockCustom { 0, // tile_id 0, // gt_id {0}, // padding - 12500000, // reference_clock + mockTimestampFrequency, // reference_clock 0b010, // native mem regions 0x101, // slow mem regions }; @@ -320,7 +319,7 @@ class DrmMockXe : public DrmMockCustom { uint64_t queryConfig[6]{}; // 1 qword for num params and 1 qwords per param static constexpr uint32_t mockExecQueueId = 1234; static constexpr int32_t mockMaxExecQueuePriority = 3; - + static constexpr uint32_t mockTimestampFrequency = 12500000; static_assert(sizeof(drm_xe_engine) == 4 * sizeof(uint64_t), ""); uint64_t queryEngines[45]{}; // 1 qword for num engines and 4 qwords per engine static_assert(sizeof(drm_xe_mem_region) == 11 * sizeof(uint64_t), "");