mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 23:56:39 +08:00
Update sysman engine and scheduler as per lastest spec
Signed-off-by: Mayank Raghuwanshi <mayank.raghuwanshi@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
4c6e38c9e5
commit
1c3107fc7e
@@ -13,28 +13,30 @@
|
|||||||
|
|
||||||
namespace L0 {
|
namespace L0 {
|
||||||
|
|
||||||
static const std::multimap<drm_i915_gem_engine_class, zes_engine_group_t> i915ToEngineMap = {
|
static const std::multimap<__u16, zes_engine_group_t> i915ToEngineMap = {
|
||||||
{I915_ENGINE_CLASS_RENDER, ZES_ENGINE_GROUP_RENDER_SINGLE},
|
{static_cast<__u16>(I915_ENGINE_CLASS_RENDER), ZES_ENGINE_GROUP_RENDER_SINGLE},
|
||||||
{I915_ENGINE_CLASS_VIDEO, ZES_ENGINE_GROUP_MEDIA_DECODE_SINGLE},
|
{static_cast<__u16>(I915_ENGINE_CLASS_VIDEO), ZES_ENGINE_GROUP_MEDIA_DECODE_SINGLE},
|
||||||
{I915_ENGINE_CLASS_VIDEO, ZES_ENGINE_GROUP_MEDIA_ENCODE_SINGLE},
|
{static_cast<__u16>(I915_ENGINE_CLASS_VIDEO), ZES_ENGINE_GROUP_MEDIA_ENCODE_SINGLE},
|
||||||
{I915_ENGINE_CLASS_COPY, ZES_ENGINE_GROUP_COPY_SINGLE}};
|
{static_cast<__u16>(I915_ENGINE_CLASS_COPY), ZES_ENGINE_GROUP_COPY_SINGLE},
|
||||||
|
{static_cast<__u16>(I915_ENGINE_CLASS_VIDEO_ENHANCE), ZES_ENGINE_GROUP_MEDIA_ENHANCEMENT_SINGLE}};
|
||||||
|
|
||||||
static const std::multimap<zes_engine_group_t, drm_i915_gem_engine_class> engineToI915Map = {
|
static const std::multimap<zes_engine_group_t, __u16> engineToI915Map = {
|
||||||
{ZES_ENGINE_GROUP_RENDER_SINGLE, I915_ENGINE_CLASS_RENDER},
|
{ZES_ENGINE_GROUP_RENDER_SINGLE, static_cast<__u16>(I915_ENGINE_CLASS_RENDER)},
|
||||||
{ZES_ENGINE_GROUP_MEDIA_DECODE_SINGLE, I915_ENGINE_CLASS_VIDEO},
|
{ZES_ENGINE_GROUP_MEDIA_DECODE_SINGLE, static_cast<__u16>(I915_ENGINE_CLASS_VIDEO)},
|
||||||
{ZES_ENGINE_GROUP_MEDIA_ENCODE_SINGLE, I915_ENGINE_CLASS_VIDEO},
|
{ZES_ENGINE_GROUP_MEDIA_ENCODE_SINGLE, static_cast<__u16>(I915_ENGINE_CLASS_VIDEO)},
|
||||||
{ZES_ENGINE_GROUP_COPY_SINGLE, I915_ENGINE_CLASS_COPY}};
|
{ZES_ENGINE_GROUP_COPY_SINGLE, static_cast<__u16>(I915_ENGINE_CLASS_COPY)},
|
||||||
|
{ZES_ENGINE_GROUP_MEDIA_ENHANCEMENT_SINGLE, static_cast<__u16>(I915_ENGINE_CLASS_VIDEO_ENHANCE)}};
|
||||||
|
|
||||||
ze_result_t OsEngine::getNumEngineTypeAndInstances(std::multimap<zes_engine_group_t, uint32_t> &engineGroupInstance, OsSysman *pOsSysman) {
|
ze_result_t OsEngine::getNumEngineTypeAndInstances(std::multimap<zes_engine_group_t, uint32_t> &engineGroupInstance, OsSysman *pOsSysman) {
|
||||||
LinuxSysmanImp *pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
|
LinuxSysmanImp *pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
|
||||||
NEO::Drm *pDrm = &pLinuxSysmanImp->getDrm();
|
NEO::Drm *pDrm = &pLinuxSysmanImp->getDrm();
|
||||||
|
|
||||||
if (pDrm->queryEngineInfo() == false) {
|
if (pDrm->sysmanQueryEngineInfo() == false) {
|
||||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||||
}
|
}
|
||||||
auto engineInfo = static_cast<NEO::EngineInfoImpl *>(pDrm->getEngineInfo());
|
auto engineInfo = static_cast<NEO::EngineInfoImpl *>(pDrm->getEngineInfo());
|
||||||
for (auto itr = engineInfo->engines.begin(); itr != engineInfo->engines.end(); ++itr) {
|
for (auto itr = engineInfo->engines.begin(); itr != engineInfo->engines.end(); ++itr) {
|
||||||
auto L0EngineEntryInMap = i915ToEngineMap.find(static_cast<drm_i915_gem_engine_class>(itr->engine.engine_class));
|
auto L0EngineEntryInMap = i915ToEngineMap.find(static_cast<__u16>(itr->engine.engine_class));
|
||||||
if (L0EngineEntryInMap == i915ToEngineMap.end()) {
|
if (L0EngineEntryInMap == i915ToEngineMap.end()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2020 Intel Corporation
|
* Copyright (C) 2020-2021 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
@@ -171,7 +171,7 @@ ze_bool_t LinuxSchedulerImp::canControlScheduler() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const std::multimap<zes_engine_type_flag_t, std::string> level0EngineTypeToSysfsEngineMap = {
|
static const std::multimap<zes_engine_type_flag_t, std::string> level0EngineTypeToSysfsEngineMap = {
|
||||||
{ZES_ENGINE_TYPE_FLAG_COMPUTE, "rcs"},
|
{ZES_ENGINE_TYPE_FLAG_RENDER, "rcs"},
|
||||||
{ZES_ENGINE_TYPE_FLAG_DMA, "bcs"},
|
{ZES_ENGINE_TYPE_FLAG_DMA, "bcs"},
|
||||||
{ZES_ENGINE_TYPE_FLAG_MEDIA, "vcs"},
|
{ZES_ENGINE_TYPE_FLAG_MEDIA, "vcs"},
|
||||||
{ZES_ENGINE_TYPE_FLAG_OTHER, "vecs"}};
|
{ZES_ENGINE_TYPE_FLAG_OTHER, "vecs"}};
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "shared/source/os_interface/linux/engine_info_impl.h"
|
#include "shared/source/os_interface/linux/engine_info_impl.h"
|
||||||
|
|
||||||
|
#include "opencl/test/unit_test/os_interface/linux/drm_mock.h"
|
||||||
|
|
||||||
#include "level_zero/core/test/unit_tests/mock.h"
|
#include "level_zero/core/test/unit_tests/mock.h"
|
||||||
#include "level_zero/core/test/unit_tests/mocks/mock_memory_manager.h"
|
#include "level_zero/core/test/unit_tests/mocks/mock_memory_manager.h"
|
||||||
#include "level_zero/tools/source/sysman/engine/linux/os_engine_imp.h"
|
#include "level_zero/tools/source/sysman/engine/linux/os_engine_imp.h"
|
||||||
@@ -23,13 +25,14 @@ constexpr int64_t mockPmuFd = 10;
|
|||||||
constexpr uint64_t mockTimestamp = 87654321;
|
constexpr uint64_t mockTimestamp = 87654321;
|
||||||
constexpr uint64_t mockActiveTime = 987654321;
|
constexpr uint64_t mockActiveTime = 987654321;
|
||||||
const uint32_t microSecondsToNanoSeconds = 1000u;
|
const uint32_t microSecondsToNanoSeconds = 1000u;
|
||||||
|
constexpr uint16_t I915_INVALID_ENGINE_CLASS = UINT16_MAX;
|
||||||
const std::string deviceDir("device");
|
const std::string deviceDir("device");
|
||||||
struct MockMemoryManagerInEngineSysman : public MemoryManagerMock {
|
struct MockMemoryManagerInEngineSysman : public MemoryManagerMock {
|
||||||
MockMemoryManagerInEngineSysman(NEO::ExecutionEnvironment &executionEnvironment) : MemoryManagerMock(const_cast<NEO::ExecutionEnvironment &>(executionEnvironment)) {}
|
MockMemoryManagerInEngineSysman(NEO::ExecutionEnvironment &executionEnvironment) : MemoryManagerMock(const_cast<NEO::ExecutionEnvironment &>(executionEnvironment)) {}
|
||||||
};
|
};
|
||||||
class EngineNeoDrm : public Drm {
|
class EngineNeoDrm : public Drm {
|
||||||
public:
|
public:
|
||||||
using Drm::engineInfo;
|
using Drm::getEngineInfo;
|
||||||
const int mockFd = 0;
|
const int mockFd = 0;
|
||||||
EngineNeoDrm(RootDeviceEnvironment &rootDeviceEnvironment) : Drm(std::make_unique<HwDeviceId>(mockFd, ""), rootDeviceEnvironment) {}
|
EngineNeoDrm(RootDeviceEnvironment &rootDeviceEnvironment) : Drm(std::make_unique<HwDeviceId>(mockFd, ""), rootDeviceEnvironment) {}
|
||||||
};
|
};
|
||||||
@@ -38,7 +41,7 @@ struct Mock<EngineNeoDrm> : public EngineNeoDrm {
|
|||||||
Mock<EngineNeoDrm>(RootDeviceEnvironment &rootDeviceEnvironment) : EngineNeoDrm(rootDeviceEnvironment) {}
|
Mock<EngineNeoDrm>(RootDeviceEnvironment &rootDeviceEnvironment) : EngineNeoDrm(rootDeviceEnvironment) {}
|
||||||
|
|
||||||
bool queryEngineInfoMockPositiveTest() {
|
bool queryEngineInfoMockPositiveTest() {
|
||||||
drm_i915_engine_info i915engineInfo[5] = {};
|
drm_i915_engine_info i915engineInfo[6] = {};
|
||||||
i915engineInfo[0].engine.engine_class = I915_ENGINE_CLASS_RENDER;
|
i915engineInfo[0].engine.engine_class = I915_ENGINE_CLASS_RENDER;
|
||||||
i915engineInfo[0].engine.engine_instance = 0;
|
i915engineInfo[0].engine.engine_instance = 0;
|
||||||
i915engineInfo[1].engine.engine_class = I915_ENGINE_CLASS_VIDEO;
|
i915engineInfo[1].engine.engine_class = I915_ENGINE_CLASS_VIDEO;
|
||||||
@@ -49,8 +52,10 @@ struct Mock<EngineNeoDrm> : public EngineNeoDrm {
|
|||||||
i915engineInfo[3].engine.engine_instance = 0;
|
i915engineInfo[3].engine.engine_instance = 0;
|
||||||
i915engineInfo[4].engine.engine_class = I915_ENGINE_CLASS_VIDEO_ENHANCE;
|
i915engineInfo[4].engine.engine_class = I915_ENGINE_CLASS_VIDEO_ENHANCE;
|
||||||
i915engineInfo[4].engine.engine_instance = 0;
|
i915engineInfo[4].engine.engine_instance = 0;
|
||||||
|
i915engineInfo[5].engine.engine_class = I915_INVALID_ENGINE_CLASS;
|
||||||
|
i915engineInfo[5].engine.engine_instance = 0;
|
||||||
|
|
||||||
this->engineInfo.reset(new EngineInfoImpl(i915engineInfo, 5));
|
this->engineInfo.reset(new EngineInfoImpl(i915engineInfo, 6));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,7 +63,7 @@ struct Mock<EngineNeoDrm> : public EngineNeoDrm {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MOCK_METHOD(bool, queryEngineInfo, (), (override));
|
MOCK_METHOD(bool, sysmanQueryEngineInfo, (), (override));
|
||||||
};
|
};
|
||||||
|
|
||||||
class MockPmuInterfaceImp : public PmuInterfaceImp {
|
class MockPmuInterfaceImp : public PmuInterfaceImp {
|
||||||
@@ -121,5 +126,12 @@ struct Mock<EngineSysfsAccess> : public EngineSysfsAccess {
|
|||||||
Mock<EngineSysfsAccess>() = default;
|
Mock<EngineSysfsAccess>() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DrmMockEngineInfoFailing : public DrmMock {
|
||||||
|
public:
|
||||||
|
using DrmMock::DrmMock;
|
||||||
|
DrmMockEngineInfoFailing(RootDeviceEnvironment &rootDeviceEnvironment) : DrmMock(rootDeviceEnvironment) {}
|
||||||
|
int handleRemainingRequests(unsigned long request, void *arg) override { return -1; }
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace ult
|
} // namespace ult
|
||||||
} // namespace L0
|
} // namespace L0
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using ::testing::Return;
|
|||||||
class OsEngine;
|
class OsEngine;
|
||||||
namespace L0 {
|
namespace L0 {
|
||||||
namespace ult {
|
namespace ult {
|
||||||
constexpr uint32_t handleComponentCount = 4u;
|
constexpr uint32_t handleComponentCount = 5u;
|
||||||
class ZesEngineFixture : public SysmanDeviceFixture {
|
class ZesEngineFixture : public SysmanDeviceFixture {
|
||||||
protected:
|
protected:
|
||||||
std::unique_ptr<Mock<EngineNeoDrm>> pDrm;
|
std::unique_ptr<Mock<EngineNeoDrm>> pDrm;
|
||||||
@@ -50,7 +50,7 @@ class ZesEngineFixture : public SysmanDeviceFixture {
|
|||||||
pOriginalPmuInterface = pLinuxSysmanImp->pPmuInterface;
|
pOriginalPmuInterface = pLinuxSysmanImp->pPmuInterface;
|
||||||
pLinuxSysmanImp->pDrm = pDrm.get();
|
pLinuxSysmanImp->pDrm = pDrm.get();
|
||||||
pLinuxSysmanImp->pPmuInterface = pPmuInterface.get();
|
pLinuxSysmanImp->pPmuInterface = pPmuInterface.get();
|
||||||
ON_CALL(*pDrm.get(), queryEngineInfo())
|
ON_CALL(*pDrm.get(), sysmanQueryEngineInfo())
|
||||||
.WillByDefault(::testing::Invoke(pDrm.get(), &Mock<EngineNeoDrm>::queryEngineInfoMockPositiveTest));
|
.WillByDefault(::testing::Invoke(pDrm.get(), &Mock<EngineNeoDrm>::queryEngineInfoMockPositiveTest));
|
||||||
|
|
||||||
ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _))
|
ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _))
|
||||||
@@ -116,6 +116,10 @@ TEST_F(ZesEngineFixture, GivenValidEngineHandlesWhenCallingZesEngineGetPropertie
|
|||||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetProperties(handle[3], &properties));
|
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetProperties(handle[3], &properties));
|
||||||
EXPECT_EQ(ZES_ENGINE_GROUP_COPY_SINGLE, properties.type);
|
EXPECT_EQ(ZES_ENGINE_GROUP_COPY_SINGLE, properties.type);
|
||||||
EXPECT_FALSE(properties.onSubdevice);
|
EXPECT_FALSE(properties.onSubdevice);
|
||||||
|
|
||||||
|
EXPECT_EQ(ZE_RESULT_SUCCESS, zesEngineGetProperties(handle[4], &properties));
|
||||||
|
EXPECT_EQ(ZES_ENGINE_GROUP_MEDIA_ENHANCEMENT_SINGLE, properties.type);
|
||||||
|
EXPECT_FALSE(properties.onSubdevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(ZesEngineFixture, GivenValidEngineHandleAndIntegratedDeviceWhenCallingZesEngineGetActivityThenVerifyCallReturnsSuccess) {
|
TEST_F(ZesEngineFixture, GivenValidEngineHandleAndIntegratedDeviceWhenCallingZesEngineGetActivityThenVerifyCallReturnsSuccess) {
|
||||||
@@ -201,11 +205,35 @@ TEST_F(ZesEngineFixture, GivenValidEngineHandleWhenCallingZesEngineGetActivityAn
|
|||||||
|
|
||||||
TEST_F(ZesEngineFixture, GivenValidOsSysmanPointerWhenRetrievingEngineTypeAndInstancesAndIfEngineInfoQueryFailsThenErrorIsReturned) {
|
TEST_F(ZesEngineFixture, GivenValidOsSysmanPointerWhenRetrievingEngineTypeAndInstancesAndIfEngineInfoQueryFailsThenErrorIsReturned) {
|
||||||
std::multimap<zes_engine_group_t, uint32_t> engineGroupInstance;
|
std::multimap<zes_engine_group_t, uint32_t> engineGroupInstance;
|
||||||
ON_CALL(*pDrm.get(), queryEngineInfo())
|
ON_CALL(*pDrm.get(), sysmanQueryEngineInfo())
|
||||||
.WillByDefault(::testing::Invoke(pDrm.get(), &Mock<EngineNeoDrm>::queryEngineInfoMockReturnFalse));
|
.WillByDefault(::testing::Invoke(pDrm.get(), &Mock<EngineNeoDrm>::queryEngineInfoMockReturnFalse));
|
||||||
|
|
||||||
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, OsEngine::getNumEngineTypeAndInstances(engineGroupInstance, pOsSysman));
|
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, OsEngine::getNumEngineTypeAndInstances(engineGroupInstance, pOsSysman));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(ZesEngineFixture, givenEngineInfoQuerySupportedWhenQueryingEngineInfoThenEngineInfoIsCreatedWithEngines) {
|
||||||
|
auto drm = std::make_unique<DrmMockEngine>((const_cast<NEO::RootDeviceEnvironment &>(neoDevice->getRootDeviceEnvironment())));
|
||||||
|
ASSERT_NE(nullptr, drm);
|
||||||
|
drm->sysmanQueryEngineInfo();
|
||||||
|
auto engineInfo = static_cast<EngineInfoImpl *>(drm->getEngineInfo());
|
||||||
|
ASSERT_NE(nullptr, engineInfo);
|
||||||
|
EXPECT_EQ(2u, engineInfo->engines.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ZesEngineFixture, GivenEngineInfoWithVideoQuerySupportedWhenQueryingEngineInfoWithVideoThenEngineInfoIsCreatedWithEngines) {
|
||||||
|
auto drm = std::make_unique<DrmMockEngine>((const_cast<NEO::RootDeviceEnvironment &>(neoDevice->getRootDeviceEnvironment())));
|
||||||
|
ASSERT_NE(nullptr, drm);
|
||||||
|
drm->sysmanQueryEngineInfo();
|
||||||
|
auto engineInfo = static_cast<EngineInfoImpl *>(drm->getEngineInfo());
|
||||||
|
ASSERT_NE(nullptr, engineInfo);
|
||||||
|
EXPECT_EQ(2u, engineInfo->engines.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ZesEngineFixture, GivenEngineInfoWithVideoQueryFailsThenFailureIsReturned) {
|
||||||
|
auto drm = std::make_unique<DrmMockEngineInfoFailing>((const_cast<NEO::RootDeviceEnvironment &>(neoDevice->getRootDeviceEnvironment())));
|
||||||
|
ASSERT_NE(nullptr, drm);
|
||||||
|
EXPECT_FALSE(drm->sysmanQueryEngineInfo());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ult
|
} // namespace ult
|
||||||
} // namespace L0
|
} // namespace L0
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2020 Intel Corporation
|
* Copyright (C) 2020-2021 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
@@ -442,7 +442,7 @@ TEST_F(SysmanDeviceSchedulerFixture, GivenValidDeviceHandleWhenCallingzesSchedul
|
|||||||
ze_result_t result = zesSchedulerGetProperties(handle, &properties);
|
ze_result_t result = zesSchedulerGetProperties(handle, &properties);
|
||||||
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
|
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
|
||||||
EXPECT_TRUE(properties.canControl);
|
EXPECT_TRUE(properties.canControl);
|
||||||
EXPECT_LE(properties.engines, ZES_ENGINE_TYPE_FLAG_DMA);
|
EXPECT_LE(properties.engines, ZES_ENGINE_TYPE_FLAG_RENDER);
|
||||||
EXPECT_EQ(properties.supportedModes, static_cast<uint32_t>((1 << ZES_SCHED_MODE_TIMEOUT) | (1 << ZES_SCHED_MODE_TIMESLICE) | (1 << ZES_SCHED_MODE_EXCLUSIVE)));
|
EXPECT_EQ(properties.supportedModes, static_cast<uint32_t>((1 << ZES_SCHED_MODE_TIMEOUT) | (1 << ZES_SCHED_MODE_TIMESLICE) | (1 << ZES_SCHED_MODE_EXCLUSIVE)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -452,7 +452,7 @@ TEST_F(SysmanMultiDeviceFixture, GivenValidDevicePointerWhenGettingSchedProperti
|
|||||||
std::vector<std::string> listOfEngines;
|
std::vector<std::string> listOfEngines;
|
||||||
ze_device_properties_t deviceProperties = {};
|
ze_device_properties_t deviceProperties = {};
|
||||||
Device::fromHandle(device)->getProperties(&deviceProperties);
|
Device::fromHandle(device)->getProperties(&deviceProperties);
|
||||||
LinuxSchedulerImp *pLinuxSchedulerImp = new LinuxSchedulerImp(pOsSysman, ZES_ENGINE_TYPE_FLAG_COMPUTE, listOfEngines,
|
LinuxSchedulerImp *pLinuxSchedulerImp = new LinuxSchedulerImp(pOsSysman, ZES_ENGINE_TYPE_FLAG_RENDER, listOfEngines,
|
||||||
deviceProperties.flags & ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE, deviceProperties.subdeviceId);
|
deviceProperties.flags & ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE, deviceProperties.subdeviceId);
|
||||||
EXPECT_EQ(ZE_RESULT_SUCCESS, pLinuxSchedulerImp->getProperties(properties));
|
EXPECT_EQ(ZE_RESULT_SUCCESS, pLinuxSchedulerImp->getProperties(properties));
|
||||||
EXPECT_EQ(properties.subdeviceId, deviceProperties.subdeviceId);
|
EXPECT_EQ(properties.subdeviceId, deviceProperties.subdeviceId);
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ class Drm {
|
|||||||
uint64_t getSliceMask(uint64_t sliceCount);
|
uint64_t getSliceMask(uint64_t sliceCount);
|
||||||
MOCKABLE_VIRTUAL bool querySystemInfo();
|
MOCKABLE_VIRTUAL bool querySystemInfo();
|
||||||
MOCKABLE_VIRTUAL bool queryEngineInfo();
|
MOCKABLE_VIRTUAL bool queryEngineInfo();
|
||||||
|
MOCKABLE_VIRTUAL bool sysmanQueryEngineInfo();
|
||||||
|
MOCKABLE_VIRTUAL bool queryEngineInfo(bool isSysmanEnabled);
|
||||||
MOCKABLE_VIRTUAL bool queryMemoryInfo();
|
MOCKABLE_VIRTUAL bool queryMemoryInfo();
|
||||||
bool queryTopology(const HardwareInfo &hwInfo, QueryTopologyData &data);
|
bool queryTopology(const HardwareInfo &hwInfo, QueryTopologyData &data);
|
||||||
bool createVirtualMemoryAddressSpace(uint32_t vmCount);
|
bool createVirtualMemoryAddressSpace(uint32_t vmCount);
|
||||||
@@ -167,6 +169,7 @@ class Drm {
|
|||||||
EngineInfo *getEngineInfo() const {
|
EngineInfo *getEngineInfo() const {
|
||||||
return engineInfo.get();
|
return engineInfo.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
RootDeviceEnvironment &getRootDeviceEnvironment() {
|
RootDeviceEnvironment &getRootDeviceEnvironment() {
|
||||||
return rootDeviceEnvironment;
|
return rootDeviceEnvironment;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ bool Drm::querySystemInfo() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Drm::queryEngineInfo() {
|
bool Drm::queryEngineInfo(bool isSysmanEnabled) {
|
||||||
auto length = 0;
|
auto length = 0;
|
||||||
auto dataQuery = this->query(DRM_I915_QUERY_ENGINE_INFO, DrmQueryItemFlags::empty, length);
|
auto dataQuery = this->query(DRM_I915_QUERY_ENGINE_INFO, DrmQueryItemFlags::empty, length);
|
||||||
auto data = reinterpret_cast<drm_i915_query_engine_info *>(dataQuery.get());
|
auto data = reinterpret_cast<drm_i915_query_engine_info *>(dataQuery.get());
|
||||||
@@ -48,6 +48,14 @@ bool Drm::queryEngineInfo() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Drm::queryEngineInfo() {
|
||||||
|
return Drm::queryEngineInfo(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Drm::sysmanQueryEngineInfo() {
|
||||||
|
return Drm::queryEngineInfo(true);
|
||||||
|
}
|
||||||
|
|
||||||
bool Drm::queryMemoryInfo() {
|
bool Drm::queryMemoryInfo() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ bool Drm::querySystemInfo() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Drm::queryEngineInfo() {
|
bool Drm::queryEngineInfo(bool isSysmanEnabled) {
|
||||||
auto length = 0;
|
auto length = 0;
|
||||||
auto dataQuery = this->query(DRM_I915_QUERY_ENGINE_INFO, DrmQueryItemFlags::empty, length);
|
auto dataQuery = this->query(DRM_I915_QUERY_ENGINE_INFO, DrmQueryItemFlags::empty, length);
|
||||||
auto data = reinterpret_cast<drm_i915_query_engine_info *>(dataQuery.get());
|
auto data = reinterpret_cast<drm_i915_query_engine_info *>(dataQuery.get());
|
||||||
@@ -50,6 +50,14 @@ bool Drm::queryEngineInfo() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Drm::queryEngineInfo() {
|
||||||
|
return Drm::queryEngineInfo(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Drm::sysmanQueryEngineInfo() {
|
||||||
|
return Drm::queryEngineInfo(true);
|
||||||
|
}
|
||||||
|
|
||||||
bool Drm::queryMemoryInfo() {
|
bool Drm::queryMemoryInfo() {
|
||||||
auto length = 0;
|
auto length = 0;
|
||||||
auto dataQuery = this->query(DRM_I915_QUERY_MEMORY_REGIONS, DrmQueryItemFlags::empty, length);
|
auto dataQuery = this->query(DRM_I915_QUERY_MEMORY_REGIONS, DrmQueryItemFlags::empty, length);
|
||||||
|
|||||||
Reference in New Issue
Block a user