mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 05:24:02 +08:00
refactor(sysman): Add SysmanProductHelper In SysmanKmdInterface Creation
- The SysmanProductHelper Pointer is used in the SysmanKmdInterface instance creation. - The filename for the critical power limit is fetched via the SysmanProductHelper instance. - The native unit for the critical limit is fetched via the SysmanProductHelper instance. Related-To: NEO-11813, NEO-11811 Signed-off-by: Bari, Pratik <pratik.bari@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c8e1ba9683
commit
4aaf201d9e
@@ -51,7 +51,7 @@ ze_result_t LinuxPowerImp::getDefaultLimit(int32_t &defaultLimit) {
|
||||
return getErrorCode(result);
|
||||
}
|
||||
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit), powerLimit, powerLimit);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit), powerLimit, powerLimit);
|
||||
defaultLimit = static_cast<int32_t>(powerLimit);
|
||||
|
||||
return result;
|
||||
@@ -65,7 +65,7 @@ ze_result_t LinuxPowerImp::getPropertiesExt(zes_power_ext_properties_t *pExtPope
|
||||
std::string defaultPowerLimit = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameDefaultPowerLimit, subdeviceId, false);
|
||||
ze_result_t result = pSysfsAccess->read(defaultPowerLimit, val);
|
||||
if (result == ZE_RESULT_SUCCESS) {
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit), val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit), val, val);
|
||||
pExtPoperties->defaultLimit->limit = static_cast<int32_t>(val);
|
||||
} else {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->read() failed to read %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), defaultPowerLimit.c_str(), getErrorCode(result));
|
||||
@@ -121,7 +121,7 @@ ze_result_t LinuxPowerImp::getLimits(zes_power_sustained_limit_t *pSustained, ze
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->read() failed to read %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), sustainedPowerLimit.c_str(), getErrorCode(result));
|
||||
return getErrorCode(result);
|
||||
}
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), val, val);
|
||||
pSustained->power = static_cast<int32_t>(val);
|
||||
pSustained->enabled = true;
|
||||
pSustained->interval = -1;
|
||||
@@ -136,7 +136,7 @@ ze_result_t LinuxPowerImp::getLimits(zes_power_sustained_limit_t *pSustained, ze
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->read() failed to read %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), criticalPowerLimit.c_str(), getErrorCode(result));
|
||||
return getErrorCode(result);
|
||||
}
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit), val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit), val, val);
|
||||
pPeak->powerAC = static_cast<int32_t>(val);
|
||||
pPeak->powerDC = -1;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ ze_result_t LinuxPowerImp::setLimits(const zes_power_sustained_limit_t *pSustain
|
||||
|
||||
if (pSustained != nullptr) {
|
||||
val = static_cast<uint64_t>(pSustained->power);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), SysmanKmdInterface::milli, val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), SysfsValueUnit::milli, val, val);
|
||||
result = pSysfsAccess->write(sustainedPowerLimit, val);
|
||||
if (ZE_RESULT_SUCCESS != result) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->write() failed to write into %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), sustainedPowerLimit.c_str(), getErrorCode(result));
|
||||
@@ -161,7 +161,7 @@ ze_result_t LinuxPowerImp::setLimits(const zes_power_sustained_limit_t *pSustain
|
||||
}
|
||||
if (pPeak != nullptr) {
|
||||
val = static_cast<uint64_t>(pPeak->powerAC);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit), SysmanKmdInterface::milli, val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit), SysfsValueUnit::milli, val, val);
|
||||
result = pSysfsAccess->write(criticalPowerLimit, val);
|
||||
if (ZE_RESULT_SUCCESS != result) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->write() failed to write into %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), criticalPowerLimit.c_str(), getErrorCode(result));
|
||||
@@ -205,7 +205,7 @@ ze_result_t LinuxPowerImp::getLimitsExt(uint32_t *pCount, zes_power_limit_ext_de
|
||||
return getErrorCode(result);
|
||||
}
|
||||
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), val, val);
|
||||
pSustained[count].limit = static_cast<int32_t>(val);
|
||||
pSustained[count].enabledStateLocked = true;
|
||||
pSustained[count].intervalValueLocked = false;
|
||||
@@ -243,7 +243,7 @@ ze_result_t LinuxPowerImp::setLimitsExt(uint32_t *pCount, zes_power_limit_ext_de
|
||||
for (uint32_t i = 0; i < *pCount; i++) {
|
||||
if (pSustained[i].level == ZES_POWER_LEVEL_SUSTAINED) {
|
||||
val = static_cast<uint64_t>(pSustained[i].limit);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), SysmanKmdInterface::milli, val, val);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit), SysfsValueUnit::milli, val, val);
|
||||
result = pSysfsAccess->write(sustainedPowerLimit, val);
|
||||
if (ZE_RESULT_SUCCESS != result) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): SysfsAccess->write() failed to write into %s/%s and returning error:0x%x \n", __FUNCTION__, intelGraphicsHwmonDir.c_str(), sustainedPowerLimit.c_str(), getErrorCode(result));
|
||||
|
||||
@@ -40,7 +40,7 @@ static ze_result_t readSchedulerValueFromSysfs(SysfsName schedulerSysfsName,
|
||||
}
|
||||
result = pSysmanImp->getSysfsAccess().read(path, readValue);
|
||||
if (result == ZE_RESULT_SUCCESS) {
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::micro,
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::micro,
|
||||
pSysmanKmdInterface->getNativeUnit(schedulerSysfsName),
|
||||
readValue, readValue);
|
||||
readValueVec[i] = readValue;
|
||||
@@ -79,7 +79,7 @@ static ze_result_t writeSchedulerValueToSysfs(SysfsName schedulerSysfsName,
|
||||
auto pSysmanKmdInterface = pSysmanImp->getSysmanKmdInterface();
|
||||
auto sysfsName = pSysmanKmdInterface->getSysfsFilePath(schedulerSysfsName, subdeviceId, false);
|
||||
pSysmanKmdInterface->convertSysfsValueUnit(pSysmanKmdInterface->getNativeUnit(schedulerSysfsName),
|
||||
SysmanKmdInterface::micro, writeValue, writeValue);
|
||||
SysfsValueUnit::micro, writeValue, writeValue);
|
||||
auto engineBasePath = pSysmanKmdInterface->getEngineBasePath(subdeviceId);
|
||||
for (const auto &engineName : listOfEngines) {
|
||||
auto path = engineBasePath + "/" + engineName + "/" + sysfsName;
|
||||
|
||||
@@ -30,6 +30,7 @@ class SysmanKmdInterface;
|
||||
class FirmwareUtil;
|
||||
|
||||
enum class RasInterfaceType;
|
||||
enum class SysfsValueUnit;
|
||||
|
||||
using SysmanProductHelperCreateFunctionType = std::unique_ptr<SysmanProductHelper> (*)();
|
||||
extern SysmanProductHelperCreateFunctionType sysmanProductHelperFactory[IGFX_MAX_PRODUCT];
|
||||
@@ -79,6 +80,8 @@ class SysmanProductHelper {
|
||||
virtual uint64_t setPowerLimitValue(int32_t value) = 0;
|
||||
virtual zes_limit_unit_t getPowerLimitUnit() = 0;
|
||||
virtual bool isPowerSetLimitSupported() = 0;
|
||||
virtual std::string getCardCriticalPowerLimitFile() = 0;
|
||||
virtual SysfsValueUnit getCardCriticalPowerLimitNativeUnit() = 0;
|
||||
|
||||
// Diagnostics
|
||||
virtual bool isDiagnosticsSupported() = 0;
|
||||
|
||||
@@ -56,6 +56,8 @@ class SysmanProductHelperHw : public SysmanProductHelper {
|
||||
uint64_t setPowerLimitValue(int32_t value) override;
|
||||
zes_limit_unit_t getPowerLimitUnit() override;
|
||||
bool isPowerSetLimitSupported() override;
|
||||
std::string getCardCriticalPowerLimitFile() override;
|
||||
SysfsValueUnit getCardCriticalPowerLimitNativeUnit() override;
|
||||
|
||||
// Diagnostics
|
||||
bool isDiagnosticsSupported() override;
|
||||
|
||||
@@ -229,6 +229,16 @@ bool SysmanProductHelperHw<gfxProduct>::isPowerSetLimitSupported() {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
std::string SysmanProductHelperHw<gfxProduct>::getCardCriticalPowerLimitFile() {
|
||||
return "power1_crit";
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
SysfsValueUnit SysmanProductHelperHw<gfxProduct>::getCardCriticalPowerLimitNativeUnit() {
|
||||
return SysfsValueUnit::micro;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool SysmanProductHelperHw<gfxProduct>::isDiagnosticsSupported() {
|
||||
return false;
|
||||
|
||||
@@ -289,6 +289,16 @@ zes_limit_unit_t SysmanProductHelperHw<gfxProduct>::getPowerLimitUnit() {
|
||||
return ZES_LIMIT_UNIT_CURRENT;
|
||||
}
|
||||
|
||||
template <>
|
||||
std::string SysmanProductHelperHw<gfxProduct>::getCardCriticalPowerLimitFile() {
|
||||
return "curr1_crit";
|
||||
}
|
||||
|
||||
template <>
|
||||
SysfsValueUnit SysmanProductHelperHw<gfxProduct>::getCardCriticalPowerLimitNativeUnit() {
|
||||
return SysfsValueUnit::milli;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool SysmanProductHelperHw<gfxProduct>::isDiagnosticsSupported() {
|
||||
return true;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "shared/source/os_interface/linux/i915.h"
|
||||
|
||||
#include "level_zero/sysman/source/shared/linux/pmu/sysman_pmu_imp.h"
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_fs_access_interface.h"
|
||||
#include "level_zero/sysman/source/sysman_const.h"
|
||||
namespace L0 {
|
||||
@@ -40,20 +41,18 @@ static const std::multimap<zes_engine_type_flag_t, std::string> level0EngineType
|
||||
SysmanKmdInterface::SysmanKmdInterface() = default;
|
||||
SysmanKmdInterface::~SysmanKmdInterface() = default;
|
||||
|
||||
std::unique_ptr<SysmanKmdInterface> SysmanKmdInterface::create(NEO::Drm &drm) {
|
||||
std::unique_ptr<SysmanKmdInterface> SysmanKmdInterface::create(NEO::Drm &drm, SysmanProductHelper *pSysmanProductHelper) {
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface;
|
||||
auto drmVersion = drm.getDrmVersion(drm.getFileDescriptor());
|
||||
auto pHwInfo = drm.getRootDeviceEnvironment().getHardwareInfo();
|
||||
const auto productFamily = pHwInfo->platform.eProductFamily;
|
||||
if ("xe" == drmVersion) {
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(productFamily);
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pSysmanProductHelper);
|
||||
} else {
|
||||
std::string prelimVersion;
|
||||
drm.getPrelimVersion(prelimVersion);
|
||||
if (prelimVersion == "") {
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(productFamily);
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pSysmanProductHelper);
|
||||
} else {
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(productFamily);
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(pSysmanProductHelper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,14 +151,14 @@ ze_result_t SysmanKmdInterface::getNumEngineTypeAndInstancesForDevice(std::strin
|
||||
return result;
|
||||
}
|
||||
|
||||
SysmanKmdInterface::SysfsValueUnit SysmanKmdInterface::getNativeUnit(const SysfsName sysfsName) {
|
||||
SysfsValueUnit SysmanKmdInterface::getNativeUnit(const SysfsName sysfsName) {
|
||||
auto sysfsNameToNativeUnitMap = getSysfsNameToNativeUnitMap();
|
||||
if (sysfsNameToNativeUnitMap.find(sysfsName) != sysfsNameToNativeUnitMap.end()) {
|
||||
return sysfsNameToNativeUnitMap[sysfsName];
|
||||
}
|
||||
// Entries are expected to be available at sysfsNameToNativeUnitMap
|
||||
DEBUG_BREAK_IF(true);
|
||||
return unAvailable;
|
||||
return SysfsValueUnit::unAvailable;
|
||||
}
|
||||
|
||||
void SysmanKmdInterface::convertSysfsValueUnit(const SysfsValueUnit dstUnit, const SysfsValueUnit srcUnit, const uint64_t srcValue, uint64_t &dstValue) const {
|
||||
|
||||
@@ -29,6 +29,7 @@ class ProcFsAccessInterface;
|
||||
class SysFsAccessInterface;
|
||||
class PmuInterface;
|
||||
class LinuxSysmanImp;
|
||||
class SysmanProductHelper;
|
||||
|
||||
typedef std::pair<std::string, std::string> valuePair;
|
||||
|
||||
@@ -94,16 +95,18 @@ enum class SysfsName {
|
||||
sysfsNamePerformanceSystemPowerBalance,
|
||||
};
|
||||
|
||||
enum class SysfsValueUnit {
|
||||
milli,
|
||||
micro,
|
||||
unAvailable,
|
||||
};
|
||||
|
||||
class SysmanKmdInterface {
|
||||
public:
|
||||
SysmanKmdInterface();
|
||||
virtual ~SysmanKmdInterface();
|
||||
enum SysfsValueUnit : uint32_t {
|
||||
milli,
|
||||
micro,
|
||||
unAvailable,
|
||||
};
|
||||
static std::unique_ptr<SysmanKmdInterface> create(NEO::Drm &drm);
|
||||
|
||||
static std::unique_ptr<SysmanKmdInterface> create(NEO::Drm &drm, SysmanProductHelper *pSysmanProductHelper);
|
||||
|
||||
virtual std::string getBasePath(uint32_t subDeviceId) const = 0;
|
||||
virtual std::string getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) = 0;
|
||||
@@ -166,7 +169,7 @@ class SysmanKmdInterfaceI915 {
|
||||
|
||||
class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInterfaceI915 {
|
||||
public:
|
||||
SysmanKmdInterfaceI915Upstream(const PRODUCT_FAMILY productFamily);
|
||||
SysmanKmdInterfaceI915Upstream(SysmanProductHelper *pSysmanProductHelper);
|
||||
~SysmanKmdInterfaceI915Upstream() override;
|
||||
|
||||
std::string getBasePath(uint32_t subDeviceId) const override;
|
||||
@@ -199,23 +202,17 @@ class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInter
|
||||
|
||||
protected:
|
||||
std::map<SysfsName, valuePair> sysfsNameToFileMap;
|
||||
void initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily);
|
||||
std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap;
|
||||
void initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
void initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
const std::map<SysfsName, SysfsValueUnit> &getSysfsNameToNativeUnitMap() override {
|
||||
return sysfsNameToNativeUnitMap;
|
||||
}
|
||||
const std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap = {
|
||||
{SysfsName::sysfsNameSchedulerTimeout, milli},
|
||||
{SysfsName::sysfsNameSchedulerTimeslice, milli},
|
||||
{SysfsName::sysfsNameSchedulerWatchDogTimeout, milli},
|
||||
{SysfsName::sysfsNameSustainedPowerLimit, micro},
|
||||
{SysfsName::sysfsNameCriticalPowerLimit, micro},
|
||||
{SysfsName::sysfsNameDefaultPowerLimit, micro},
|
||||
};
|
||||
};
|
||||
|
||||
class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfaceI915 {
|
||||
public:
|
||||
SysmanKmdInterfaceI915Prelim(const PRODUCT_FAMILY productFamily);
|
||||
SysmanKmdInterfaceI915Prelim(SysmanProductHelper *pSysmanProductHelper);
|
||||
~SysmanKmdInterfaceI915Prelim() override;
|
||||
|
||||
std::string getBasePath(uint32_t subDeviceId) const override;
|
||||
@@ -248,23 +245,17 @@ class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfa
|
||||
|
||||
protected:
|
||||
std::map<SysfsName, valuePair> sysfsNameToFileMap;
|
||||
void initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily);
|
||||
std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap;
|
||||
void initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
void initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
const std::map<SysfsName, SysfsValueUnit> &getSysfsNameToNativeUnitMap() override {
|
||||
return sysfsNameToNativeUnitMap;
|
||||
}
|
||||
const std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap = {
|
||||
{SysfsName::sysfsNameSchedulerTimeout, milli},
|
||||
{SysfsName::sysfsNameSchedulerTimeslice, milli},
|
||||
{SysfsName::sysfsNameSchedulerWatchDogTimeout, milli},
|
||||
{SysfsName::sysfsNameSustainedPowerLimit, micro},
|
||||
{SysfsName::sysfsNameCriticalPowerLimit, micro},
|
||||
{SysfsName::sysfsNameDefaultPowerLimit, micro},
|
||||
};
|
||||
};
|
||||
|
||||
class SysmanKmdInterfaceXe : public SysmanKmdInterface {
|
||||
public:
|
||||
SysmanKmdInterfaceXe(const PRODUCT_FAMILY productFamily);
|
||||
SysmanKmdInterfaceXe(SysmanProductHelper *pSysmanProductHelper);
|
||||
~SysmanKmdInterfaceXe() override;
|
||||
|
||||
std::string getBasePath(uint32_t subDeviceId) const override;
|
||||
@@ -299,19 +290,12 @@ class SysmanKmdInterfaceXe : public SysmanKmdInterface {
|
||||
|
||||
protected:
|
||||
std::map<SysfsName, valuePair> sysfsNameToFileMap;
|
||||
void initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily);
|
||||
std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap;
|
||||
void initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
void initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper);
|
||||
const std::map<SysfsName, SysfsValueUnit> &getSysfsNameToNativeUnitMap() override {
|
||||
return sysfsNameToNativeUnitMap;
|
||||
}
|
||||
const std::map<SysfsName, SysfsValueUnit> sysfsNameToNativeUnitMap = {
|
||||
{SysfsName::sysfsNameSchedulerTimeout, micro},
|
||||
{SysfsName::sysfsNameSchedulerTimeslice, micro},
|
||||
{SysfsName::sysfsNameSchedulerWatchDogTimeout, milli},
|
||||
{SysfsName::sysfsNameSchedulerWatchDogTimeoutMaximum, milli},
|
||||
{SysfsName::sysfsNameSustainedPowerLimit, micro},
|
||||
{SysfsName::sysfsNameCriticalPowerLimit, micro},
|
||||
{SysfsName::sysfsNameDefaultPowerLimit, micro},
|
||||
};
|
||||
};
|
||||
|
||||
} // namespace Sysman
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "shared/source/os_interface/linux/i915_prelim.h"
|
||||
|
||||
#include "level_zero/sysman/source/shared/linux/pmu/sysman_pmu_imp.h"
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_fs_access_interface.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_kmd_interface.h"
|
||||
#include "level_zero/sysman/source/shared/linux/zes_os_sysman_imp.h"
|
||||
@@ -16,8 +17,9 @@
|
||||
namespace L0 {
|
||||
namespace Sysman {
|
||||
|
||||
SysmanKmdInterfaceI915Prelim::SysmanKmdInterfaceI915Prelim(const PRODUCT_FAMILY productFamily) {
|
||||
initSysfsNameToFileMap(productFamily);
|
||||
SysmanKmdInterfaceI915Prelim::SysmanKmdInterfaceI915Prelim(SysmanProductHelper *pSysmanProductHelper) {
|
||||
initSysfsNameToFileMap(pSysmanProductHelper);
|
||||
initSysfsNameToNativeUnitMap(pSysmanProductHelper);
|
||||
}
|
||||
|
||||
SysmanKmdInterfaceI915Prelim::~SysmanKmdInterfaceI915Prelim() = default;
|
||||
@@ -29,7 +31,7 @@ static const std::map<__u16, std::string> i915EngineClassToSysfsEngineMap = {
|
||||
{drm_i915_gem_engine_class::I915_ENGINE_CLASS_VIDEO, "vcs"},
|
||||
{drm_i915_gem_engine_class::I915_ENGINE_CLASS_VIDEO_ENHANCE, "vecs"}};
|
||||
|
||||
void SysmanKmdInterfaceI915Prelim::initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily) {
|
||||
void SysmanKmdInterfaceI915Prelim::initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinFrequency] = std::make_pair("rps_min_freq_mhz", "gt_min_freq_mhz");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxFrequency] = std::make_pair("rps_max_freq_mhz", "gt_max_freq_mhz");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinDefaultFrequency] = std::make_pair(".defaults/rps_min_freq_mhz", "");
|
||||
@@ -50,7 +52,7 @@ void SysmanKmdInterfaceI915Prelim::initSysfsNameToFileMap(const PRODUCT_FAMILY p
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameSustainedPowerLimitInterval] = std::make_pair("", "power1_max_interval");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameEnergyCounterNode] = std::make_pair("", "energy1_input");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameDefaultPowerLimit] = std::make_pair("", "power1_rated_max");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", (productFamily == IGFX_PVC) ? "curr1_crit" : "power1_crit");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", pSysmanProductHelper->getCardCriticalPowerLimitFile());
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameStandbyModeControl] = std::make_pair("rc6_enable", "power/rc6_enable");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMemoryAddressRange] = std::make_pair("addr_range", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxMemoryFrequency] = std::make_pair("mem_RP0_freq_mhz", "");
|
||||
@@ -65,6 +67,15 @@ void SysmanKmdInterfaceI915Prelim::initSysfsNameToFileMap(const PRODUCT_FAMILY p
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameSchedulerWatchDogTimeout] = std::make_pair("", "heartbeat_interval_ms");
|
||||
}
|
||||
|
||||
void SysmanKmdInterfaceI915Prelim::initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeout] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeslice] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerWatchDogTimeout] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSustainedPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameDefaultPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameCriticalPowerLimit] = pSysmanProductHelper->getCardCriticalPowerLimitNativeUnit();
|
||||
}
|
||||
|
||||
std::string SysmanKmdInterfaceI915Prelim::getBasePath(uint32_t subDeviceId) const {
|
||||
return getBasePathI915(subDeviceId);
|
||||
}
|
||||
|
||||
@@ -10,14 +10,16 @@
|
||||
#include "shared/source/os_interface/linux/i915.h"
|
||||
|
||||
#include "level_zero/sysman/source/shared/linux/pmu/sysman_pmu_imp.h"
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_fs_access_interface.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_kmd_interface.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace Sysman {
|
||||
|
||||
SysmanKmdInterfaceI915Upstream::SysmanKmdInterfaceI915Upstream(const PRODUCT_FAMILY productFamily) {
|
||||
initSysfsNameToFileMap(productFamily);
|
||||
SysmanKmdInterfaceI915Upstream::SysmanKmdInterfaceI915Upstream(SysmanProductHelper *pSysmanProductHelper) {
|
||||
initSysfsNameToFileMap(pSysmanProductHelper);
|
||||
initSysfsNameToNativeUnitMap(pSysmanProductHelper);
|
||||
}
|
||||
|
||||
SysmanKmdInterfaceI915Upstream::~SysmanKmdInterfaceI915Upstream() = default;
|
||||
@@ -26,7 +28,7 @@ std::string SysmanKmdInterfaceI915Upstream::getBasePath(uint32_t subDeviceId) co
|
||||
return getBasePathI915(subDeviceId);
|
||||
}
|
||||
|
||||
void SysmanKmdInterfaceI915Upstream::initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily) {
|
||||
void SysmanKmdInterfaceI915Upstream::initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinFrequency] = std::make_pair("rps_min_freq_mhz", "gt_min_freq_mhz");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxFrequency] = std::make_pair("rps_max_freq_mhz", "gt_max_freq_mhz");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinDefaultFrequency] = std::make_pair(".defaults/rps_min_freq_mhz", "");
|
||||
@@ -47,7 +49,7 @@ void SysmanKmdInterfaceI915Upstream::initSysfsNameToFileMap(const PRODUCT_FAMILY
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameSustainedPowerLimitInterval] = std::make_pair("", "power1_max_interval");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameEnergyCounterNode] = std::make_pair("", "energy1_input");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameDefaultPowerLimit] = std::make_pair("", "power1_rated_max");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", (productFamily == IGFX_PVC) ? "curr1_crit" : "power1_crit");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", pSysmanProductHelper->getCardCriticalPowerLimitFile());
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameStandbyModeControl] = std::make_pair("rc6_enable", "power/rc6_enable");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMemoryAddressRange] = std::make_pair("addr_range", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxMemoryFrequency] = std::make_pair("mem_RP0_freq_mhz", "");
|
||||
@@ -62,6 +64,15 @@ void SysmanKmdInterfaceI915Upstream::initSysfsNameToFileMap(const PRODUCT_FAMILY
|
||||
sysfsNameToFileMap[SysfsName::sysfsNamePerformanceSystemPowerBalance] = std::make_pair("", "sys_pwr_balance");
|
||||
}
|
||||
|
||||
void SysmanKmdInterfaceI915Upstream::initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeout] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeslice] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerWatchDogTimeout] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSustainedPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameDefaultPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameCriticalPowerLimit] = pSysmanProductHelper->getCardCriticalPowerLimitNativeUnit();
|
||||
}
|
||||
|
||||
std::string SysmanKmdInterfaceI915Upstream::getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool prefixBaseDirectory) {
|
||||
if (sysfsNameToFileMap.find(sysfsName) != sysfsNameToFileMap.end()) {
|
||||
std::string filePath = prefixBaseDirectory ? getBasePath(subDeviceId) + sysfsNameToFileMap[sysfsName].first : sysfsNameToFileMap[sysfsName].second;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "shared/source/os_interface/linux/engine_info.h"
|
||||
|
||||
#include "level_zero/sysman/source/shared/linux/pmu/sysman_pmu_imp.h"
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_fs_access_interface.h"
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_kmd_interface.h"
|
||||
|
||||
@@ -24,8 +25,9 @@ static const std::map<__u16, std::string> xeEngineClassToSysfsEngineMap = {
|
||||
{DRM_XE_ENGINE_CLASS_VIDEO_DECODE, "vcs"},
|
||||
{DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE, "vecs"}};
|
||||
|
||||
SysmanKmdInterfaceXe::SysmanKmdInterfaceXe(const PRODUCT_FAMILY productFamily) {
|
||||
initSysfsNameToFileMap(productFamily);
|
||||
SysmanKmdInterfaceXe::SysmanKmdInterfaceXe(SysmanProductHelper *pSysmanProductHelper) {
|
||||
initSysfsNameToFileMap(pSysmanProductHelper);
|
||||
initSysfsNameToNativeUnitMap(pSysmanProductHelper);
|
||||
}
|
||||
|
||||
SysmanKmdInterfaceXe::~SysmanKmdInterfaceXe() = default;
|
||||
@@ -34,7 +36,7 @@ std::string SysmanKmdInterfaceXe::getBasePath(uint32_t subDeviceId) const {
|
||||
return "device/tile" + std::to_string(subDeviceId) + "/gt" + std::to_string(subDeviceId) + "/";
|
||||
}
|
||||
|
||||
void SysmanKmdInterfaceXe::initSysfsNameToFileMap(const PRODUCT_FAMILY productFamily) {
|
||||
void SysmanKmdInterfaceXe::initSysfsNameToFileMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinFrequency] = std::make_pair("freq0/min_freq", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxFrequency] = std::make_pair("freq0/max_freq", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCurrentFrequency] = std::make_pair("freq0/cur_freq", "");
|
||||
@@ -51,7 +53,7 @@ void SysmanKmdInterfaceXe::initSysfsNameToFileMap(const PRODUCT_FAMILY productFa
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameSustainedPowerLimitInterval] = std::make_pair("", "power1_max_interval");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameEnergyCounterNode] = std::make_pair("", "energy1_input");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameDefaultPowerLimit] = std::make_pair("", "power1_rated_max");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", (productFamily == IGFX_PVC) ? "curr1_crit" : "power1_crit");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameCriticalPowerLimit] = std::make_pair("", pSysmanProductHelper->getCardCriticalPowerLimitFile());
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMemoryAddressRange] = std::make_pair("physical_vram_size_bytes", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMaxMemoryFrequency] = std::make_pair("freq_vram_rp0", "");
|
||||
sysfsNameToFileMap[SysfsName::sysfsNameMinMemoryFrequency] = std::make_pair("freq_vram_rpn", "");
|
||||
@@ -66,6 +68,16 @@ void SysmanKmdInterfaceXe::initSysfsNameToFileMap(const PRODUCT_FAMILY productFa
|
||||
sysfsNameToFileMap[SysfsName::sysfsNamePerformanceSystemPowerBalance] = std::make_pair("", "sys_pwr_balance");
|
||||
}
|
||||
|
||||
void SysmanKmdInterfaceXe::initSysfsNameToNativeUnitMap(SysmanProductHelper *pSysmanProductHelper) {
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeout] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerTimeslice] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerWatchDogTimeout] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSchedulerWatchDogTimeoutMaximum] = SysfsValueUnit::milli;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameSustainedPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameDefaultPowerLimit] = SysfsValueUnit::micro;
|
||||
sysfsNameToNativeUnitMap[SysfsName::sysfsNameCriticalPowerLimit] = pSysmanProductHelper->getCardCriticalPowerLimitNativeUnit();
|
||||
}
|
||||
|
||||
std::string SysmanKmdInterfaceXe::getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool prefixBaseDirectory) {
|
||||
if (sysfsNameToFileMap.find(sysfsName) != sysfsNameToFileMap.end()) {
|
||||
std::string filePath = prefixBaseDirectory ? getBasePath(subDeviceId) + sysfsNameToFileMap[sysfsName].first : sysfsNameToFileMap[sysfsName].second;
|
||||
|
||||
@@ -42,7 +42,10 @@ ze_result_t LinuxSysmanImp::init() {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
}
|
||||
|
||||
pSysmanKmdInterface = SysmanKmdInterface::create(*getDrm());
|
||||
pSysmanProductHelper = SysmanProductHelper::create(getProductFamily());
|
||||
DEBUG_BREAK_IF(nullptr == pSysmanProductHelper);
|
||||
|
||||
pSysmanKmdInterface = SysmanKmdInterface::create(*getDrm(), pSysmanProductHelper.get());
|
||||
auto result = pSysmanKmdInterface->initFsAccessInterface(*getDrm());
|
||||
if (result != ZE_RESULT_SUCCESS) {
|
||||
return result;
|
||||
@@ -50,8 +53,6 @@ ze_result_t LinuxSysmanImp::init() {
|
||||
pFsAccess = pSysmanKmdInterface->getFsAccess();
|
||||
pProcfsAccess = pSysmanKmdInterface->getProcFsAccess();
|
||||
pSysfsAccess = pSysmanKmdInterface->getSysFsAccess();
|
||||
pSysmanProductHelper = SysmanProductHelper::create(getProductFamily());
|
||||
DEBUG_BREAK_IF(nullptr == pSysmanProductHelper);
|
||||
|
||||
auto sysmanHwDeviceId = getSysmanHwDeviceIdInstance();
|
||||
int myDeviceFd = sysmanHwDeviceId.getFileDescriptor();
|
||||
|
||||
@@ -41,7 +41,7 @@ class ZesEngineFixtureI915 : public ZesEngineFixture {
|
||||
auto &osInterface = pSysmanDeviceImp->getRootDeviceEnvironment().osInterface;
|
||||
osInterface->setDriverModel(std::unique_ptr<MockEngineNeoDrm>(pDrm));
|
||||
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Upstream(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Upstream(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->initFsAccessInterface(*pDrm);
|
||||
|
||||
pPmuInterface = std::make_unique<MockEnginePmuInterfaceImp>(pLinuxSysmanImp);
|
||||
|
||||
@@ -40,7 +40,7 @@ class ZesEngineFixturePrelim : public SysmanDeviceFixture {
|
||||
auto &osInterface = pSysmanDeviceImp->getRootDeviceEnvironment().osInterface;
|
||||
osInterface->setDriverModel(std::unique_ptr<MockEngineNeoDrmPrelim>(pDrm));
|
||||
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->initFsAccessInterface(*pDrm);
|
||||
|
||||
pPmuInterface = std::make_unique<MockEnginePmuInterfaceImpPrelim>(pLinuxSysmanImp);
|
||||
@@ -334,7 +334,7 @@ class ZesEngineMultiFixturePrelim : public SysmanMultiDeviceFixture {
|
||||
auto &osInterface = pSysmanDeviceImp->getRootDeviceEnvironment().osInterface;
|
||||
osInterface->setDriverModel(std::unique_ptr<MockEngineNeoDrmPrelim>(pDrm));
|
||||
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->initFsAccessInterface(*pDrm);
|
||||
|
||||
pPmuInterface = std::make_unique<MockEnginePmuInterfaceImpPrelim>(pLinuxSysmanImp);
|
||||
|
||||
@@ -37,7 +37,7 @@ class ZesEngineFixtureXe : public SysmanDeviceFixture {
|
||||
auto &osInterface = pSysmanDeviceImp->getRootDeviceEnvironment().osInterface;
|
||||
osInterface->setDriverModel(std::unique_ptr<MockNeoDrm>(pDrm));
|
||||
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceXe(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceXe(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->initFsAccessInterface(*pDrm);
|
||||
pPmuInterface = std::make_unique<MockPmuInterfaceImp>(pLinuxSysmanImp);
|
||||
pPmuInterface->mockPmuFd = 10;
|
||||
|
||||
@@ -37,7 +37,7 @@ class SysmanDeviceFrequencyFixtureXe : public SysmanDeviceFixture {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
device = pSysmanDevice;
|
||||
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceXe(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceXe(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pSysfsAccess = std::make_unique<MockXeFrequencySysfsAccess>();
|
||||
pLinuxSysmanImp->pSysfsAccess = pSysmanKmdInterface->pSysfsAccess.get();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
|
||||
@@ -204,7 +204,7 @@ TEST_F(SysmanGlobalOperationsFixture, GivenValidDeviceHandleWhenCallingzesGlobal
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -569,7 +569,7 @@ TEST_F(SysmanGlobalOperationsFixture,
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -588,7 +588,7 @@ TEST_F(SysmanGlobalOperationsFixture,
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -606,7 +606,7 @@ TEST_F(SysmanGlobalOperationsFixture,
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -625,7 +625,7 @@ TEST_F(SysmanGlobalOperationsFixture,
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -644,7 +644,7 @@ TEST_F(SysmanGlobalOperationsFixture,
|
||||
|
||||
MockGlobalOperationsFsAccess *pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
MockGlobalOperationsSysfsAccess *pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getProductFamily());
|
||||
MockSysmanKmdInterfaceUpstream *pSysmanKmdInterface = new MockSysmanKmdInterfaceUpstream(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pFsAccess.reset(pFsAccess);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
|
||||
@@ -27,7 +27,7 @@ class SysmanGlobalOperationsFixtureXe : public SysmanDeviceFixture {
|
||||
void SetUp() override {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceXe(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceXe(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccess = new MockGlobalOperationsSysfsAccess();
|
||||
pProcfsAccess = new MockGlobalOperationsProcfsAccess();
|
||||
pFsAccess = new MockGlobalOperationsFsAccess();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -161,13 +161,6 @@ class PublicLinuxSysmanDriverImp : public L0::Sysman::LinuxSysmanDriverImp {
|
||||
using LinuxSysmanDriverImp::pUdevLib;
|
||||
};
|
||||
|
||||
class PublicSysmanKmdInterfaceI915 : public L0::Sysman::SysmanKmdInterfaceI915Upstream {
|
||||
public:
|
||||
PublicSysmanKmdInterfaceI915(const PRODUCT_FAMILY productFamily) : L0::Sysman::SysmanKmdInterfaceI915Upstream(productFamily) {}
|
||||
~PublicSysmanKmdInterfaceI915() override = default;
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
};
|
||||
|
||||
} // namespace ult
|
||||
} // namespace Sysman
|
||||
} // namespace L0
|
||||
|
||||
@@ -303,14 +303,6 @@ class PublicLinuxMemoryImp : public L0::Sysman::LinuxMemoryImp {
|
||||
using L0::Sysman::LinuxMemoryImp::pSysmanKmdInterface;
|
||||
};
|
||||
|
||||
class MockMemorySysmanKmdInterfaceXe : public L0::Sysman::SysmanKmdInterfaceXe {
|
||||
public:
|
||||
using L0::Sysman::SysmanKmdInterface::pProcfsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
MockMemorySysmanKmdInterfaceXe(const PRODUCT_FAMILY productFamily) : SysmanKmdInterfaceXe(productFamily) {}
|
||||
~MockMemorySysmanKmdInterfaceXe() override = default;
|
||||
};
|
||||
|
||||
struct MockMemorySysFsAccessInterface : public L0::Sysman::SysFsAccessInterface {
|
||||
std::vector<ze_result_t> mockReadReturnStatus{};
|
||||
std::vector<std::string> mockReadStringValue{};
|
||||
@@ -346,13 +338,6 @@ class MockProcFsAccessInterface : public L0::Sysman::ProcFsAccessInterface {
|
||||
~MockProcFsAccessInterface() override = default;
|
||||
};
|
||||
|
||||
class MockSysmanKmdInterfaceI915Prelim : public L0::Sysman::SysmanKmdInterfaceI915Prelim {
|
||||
public:
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
MockSysmanKmdInterfaceI915Prelim(const PRODUCT_FAMILY productFamily) : SysmanKmdInterfaceI915Prelim(productFamily) {}
|
||||
~MockSysmanKmdInterfaceI915Prelim() override = default;
|
||||
};
|
||||
|
||||
} // namespace ult
|
||||
} // namespace Sysman
|
||||
} // namespace L0
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/linux/mock_sysman_fixture.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/memory/linux/mock_memory.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/shared/linux/mock_sysman_kmd_interface_i915.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/shared/linux/mock_sysman_kmd_interface_xe.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
@@ -528,12 +529,12 @@ class SysmanDeviceMemoryFixtureXe : public SysmanDeviceMemoryFixture {
|
||||
protected:
|
||||
DebugManagerStateRestore restorer;
|
||||
MockMemoryNeoDrm *pDrm = nullptr;
|
||||
MockMemorySysmanKmdInterfaceXe *pSysmanKmdInterface = nullptr;
|
||||
MockSysmanKmdInterfaceXe *pSysmanKmdInterface = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
debugManager.flags.EnableLocalMemory.set(1);
|
||||
SysmanDeviceFixture::SetUp();
|
||||
pSysmanKmdInterface = new MockMemorySysmanKmdInterfaceXe(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceXe(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysmanKmdInterface->pProcfsAccess = std::make_unique<MockProcFsAccessInterface>();
|
||||
pSysmanKmdInterface->pSysfsAccess = std::make_unique<MockMemorySysFsAccessInterface>();
|
||||
|
||||
@@ -602,13 +603,13 @@ class SysmanMultiDeviceMemoryFixture : public SysmanMultiDeviceFixture {
|
||||
MockMemoryNeoDrm *pDrm = nullptr;
|
||||
L0::Sysman::SysmanDevice *device = nullptr;
|
||||
MockMemorySysFsAccessInterface *pSysfsAccess = nullptr;
|
||||
MockSysmanKmdInterfaceI915Prelim *pSysmanKmdInterface = nullptr;
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
debugManager.flags.EnableLocalMemory.set(1);
|
||||
SysmanMultiDeviceFixture::SetUp();
|
||||
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccess = new MockMemorySysFsAccessInterface();
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
|
||||
@@ -137,7 +137,7 @@ class ZesPerformanceFixtureI915 : public ZesPerformanceFixture {
|
||||
};
|
||||
|
||||
TEST_F(ZesPerformanceFixtureI915, GivenKmdInterfaceWhenGettingSysFsFilenamesForPerformanceForI915VersionThenProperPathsAreReturned) {
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
EXPECT_STREQ(std::string(i915MediaFreqFactorFileName0).c_str(), pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePerformanceMediaFrequencyFactor, 0, true).c_str());
|
||||
EXPECT_STREQ(std::string(i915MediaFreqFactorScaleFileName0).c_str(), pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePerformanceMediaFrequencyFactorScale, 0, true).c_str());
|
||||
}
|
||||
@@ -198,7 +198,7 @@ HWTEST2_F(ZesPerformanceFixtureI915, GivenMediaDomainTypeWhenGettingPerfHandlesT
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsOpen)> mockOpen(&NEO::SysCalls::sysCallsOpen, &mockOpenSuccess);
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsPread)> mockPread(&NEO::SysCalls::sysCallsPread, &mockReadSuccess);
|
||||
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
auto pSysFsAccess = std::make_unique<MockSysFsAccessInterface>();
|
||||
|
||||
PublicLinuxPerformanceImp *pLinuxPerformanceImp = new PublicLinuxPerformanceImp(pOsSysman, 1, 0u, ZES_ENGINE_TYPE_FLAG_MEDIA);
|
||||
@@ -212,7 +212,7 @@ TEST_F(ZesPerformanceFixtureI915, GivenComputeDomainTypeWhenGettingPerfHandlesTh
|
||||
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsStat)> mockStat(&NEO::SysCalls::sysCallsStat, &mockStatSuccess);
|
||||
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
auto pSysFsAccess = std::make_unique<MockSysFsAccessInterface>();
|
||||
|
||||
PublicLinuxPerformanceImp *pLinuxPerformanceImp = new PublicLinuxPerformanceImp(pOsSysman, 1, 0u, ZES_ENGINE_TYPE_FLAG_COMPUTE);
|
||||
@@ -310,7 +310,7 @@ class ZesPerformanceFixtureXe : public ZesPerformanceFixture {
|
||||
};
|
||||
|
||||
TEST_F(ZesPerformanceFixtureXe, GivenKmdInterfaceWhenGettingSysFsFilenamesForPerformanceForXeVersionThenProperPathsAreReturned) {
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
EXPECT_STREQ(std::string(xeMediaFreqFactorFileName0).c_str(), pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePerformanceMediaFrequencyFactor, 0, true).c_str());
|
||||
EXPECT_STREQ(std::string(xeMediaFreqFactorScaleFileName0).c_str(), pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePerformanceMediaFrequencyFactorScale, 0, true).c_str());
|
||||
EXPECT_STREQ(std::string(xeBaseFreqFactorFileName0).c_str(), pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePerformanceBaseFrequencyFactor, 0, true).c_str());
|
||||
@@ -323,7 +323,7 @@ HWTEST2_F(ZesPerformanceFixtureXe, GivenPerfFactorDomainsWhenGettingPerfHandlesT
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsOpen)> mockOpen(&NEO::SysCalls::sysCallsOpen, &mockOpenSuccess);
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsPread)> mockPread(&NEO::SysCalls::sysCallsPread, &mockReadSuccess);
|
||||
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
auto pSysFsAccess = std::make_unique<MockSysFsAccessInterface>();
|
||||
|
||||
std::swap(pLinuxSysmanImp->pSysmanKmdInterface, pSysmanKmdInterface);
|
||||
@@ -359,7 +359,7 @@ TEST_F(ZesPerformanceFixtureXe, GivenPerfFactorDomainsWhenGettingPerfHandlesThen
|
||||
std::unique_ptr<SysmanProductHelper> pSysmanProductHelper = std::make_unique<MockSysmanProductHelperPerf>();
|
||||
std::swap(pLinuxSysmanImp->pSysmanProductHelper, pSysmanProductHelper);
|
||||
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
auto pSysFsAccess = std::make_unique<MockSysFsAccessInterface>();
|
||||
|
||||
std::swap(pLinuxSysmanImp->pSysmanKmdInterface, pSysmanKmdInterface);
|
||||
|
||||
@@ -26,7 +26,7 @@ class ZesPerformanceFixtureI915Prelim : public SysmanMultiDeviceFixture {
|
||||
void SetUp() override {
|
||||
SysmanMultiDeviceFixture::SetUp();
|
||||
pSysmanDeviceImp->pPerformanceHandleContext->handleList.clear();
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(pLinuxSysmanImp->getProductFamily());
|
||||
std::unique_ptr<SysmanKmdInterface> pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
std::swap(pLinuxSysmanImp->pSysmanKmdInterface, pSysmanKmdInterface);
|
||||
pSysfsAccess = std::make_unique<MockPerformanceSysfsAccess>();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "level_zero/sysman/source/shared/linux/sysman_fs_access_interface.h"
|
||||
#include "level_zero/sysman/source/sysman_const.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/linux/mock_sysman_fixture.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/shared/linux/mock_sysman_kmd_interface_i915.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace Sysman {
|
||||
@@ -311,14 +312,14 @@ class SysmanDevicePowerFixtureI915 : public SysmanDeviceFixture {
|
||||
std::unique_ptr<MockPowerPmt> pPmt;
|
||||
std::unique_ptr<MockPowerFsAccess> pFsAccess;
|
||||
std::map<uint32_t, L0::Sysman::PlatformMonitoringTech *> pmtMapOriginal;
|
||||
PublicSysmanKmdInterfaceI915 *pSysmanKmdInterface = nullptr;
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = nullptr;
|
||||
MockPowerSysfsAccessInterface *pSysfsAccess = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
device = pSysmanDevice;
|
||||
pFsAccess = std::make_unique<MockPowerFsAccess>();
|
||||
pSysmanKmdInterface = new PublicSysmanKmdInterfaceI915(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccess = new MockPowerSysfsAccessInterface();
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -371,7 +372,7 @@ class SysmanDevicePowerMultiDeviceFixture : public SysmanMultiDeviceFixture {
|
||||
std::unique_ptr<MockPowerPmt> pPmt;
|
||||
std::unique_ptr<MockPowerFsAccess> pFsAccess;
|
||||
std::map<uint32_t, L0::Sysman::PlatformMonitoringTech *> mapOriginal;
|
||||
PublicSysmanKmdInterfaceI915 *pSysmanKmdInterface = nullptr;
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = nullptr;
|
||||
MockPowerSysfsAccessInterface *pSysfsAccess = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
@@ -379,7 +380,7 @@ class SysmanDevicePowerMultiDeviceFixture : public SysmanMultiDeviceFixture {
|
||||
device = pSysmanDevice;
|
||||
pFsAccess = std::make_unique<MockPowerFsAccess>();
|
||||
|
||||
pSysmanKmdInterface = new PublicSysmanKmdInterfaceI915(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccess = new MockPowerSysfsAccessInterface();
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
|
||||
@@ -918,7 +918,7 @@ TEST_F(SysmanDevicePowerMultiDeviceFixture, GivenValidPowerHandleWhenGettingPowe
|
||||
}
|
||||
|
||||
TEST_F(SysmanDevicePowerFixtureXe, GivenKmdInterfaceWhenGettingSysFsFilenamesForPowerForXeVersionThenProperPathsAreReturned) {
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
EXPECT_STREQ("energy1_input", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameEnergyCounterNode, 0, false).c_str());
|
||||
EXPECT_STREQ("power1_rated_max", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameDefaultPowerLimit, 0, false).c_str());
|
||||
EXPECT_STREQ("power1_max", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameSustainedPowerLimit, 0, false).c_str());
|
||||
|
||||
@@ -139,7 +139,7 @@ TEST_F(SysmanDeviceSchedulerFixtureI915, GivenComponentCountZeroWhenCallingzesDe
|
||||
TEST_F(SysmanDeviceSchedulerFixtureI915, GivenComponentCountZeroAndKMDVersionIsPrelimWhenCallingzesDeviceEnumSchedulersThenNonZeroCountIsReturnedAndVerifyCallSucceeds) {
|
||||
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(pLinuxSysmanImp->getProductFamily());
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Prelim>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
|
||||
auto pSchedulerHandleContextTest = std::make_unique<L0::Sysman::SchedulerHandleContext>(pOsSysman);
|
||||
pSchedulerHandleContextTest->init(pOsSysman->getSubDeviceCount());
|
||||
@@ -680,7 +680,7 @@ class SysmanDeviceSchedulerFixtureXe : public SysmanDeviceSchedulerFixture {
|
||||
void SetUp() override {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccessOld = pLinuxSysmanImp->pSysfsAccess;
|
||||
pSysfsAccess = std::make_unique<MockSchedulerSysfsAccessXe>();
|
||||
pLinuxSysmanImp->pSysfsAccess = pSysfsAccess.get();
|
||||
@@ -847,7 +847,7 @@ TEST_F(SysmanDeviceSchedulerFixtureXe, GivenDestinationOrSourceUnitsAreNotSuppor
|
||||
|
||||
uint64_t sourceValue = 100;
|
||||
uint64_t dstValue = 0;
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->convertSysfsValueUnit(SysmanKmdInterface::SysfsValueUnit::unAvailable, SysmanKmdInterface::SysfsValueUnit::milli, sourceValue, dstValue);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface->convertSysfsValueUnit(SysfsValueUnit::unAvailable, SysfsValueUnit::milli, sourceValue, dstValue);
|
||||
EXPECT_EQ(sourceValue, dstValue);
|
||||
}
|
||||
|
||||
@@ -872,7 +872,7 @@ class SysmanMultiDeviceSchedulerFixtureXe : public SysmanMultiDeviceFixture {
|
||||
void SetUp() override {
|
||||
SysmanMultiDeviceFixture::SetUp();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
pLinuxSysmanImp->pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
MockSchedulerNeoDrm *pDrm = new MockSchedulerNeoDrm(const_cast<NEO::RootDeviceEnvironment &>(pSysmanDeviceImp->getRootDeviceEnvironment()));
|
||||
pDrm->setupIoctlHelper(pSysmanDeviceImp->getRootDeviceEnvironment().getHardwareInfo()->platform.eProductFamily);
|
||||
auto &osInterface = pSysmanDeviceImp->getRootDeviceEnvironment().osInterface;
|
||||
|
||||
@@ -18,7 +18,7 @@ class MockSysmanKmdInterfacePrelim : public L0::Sysman::SysmanKmdInterfaceI915Pr
|
||||
using L0::Sysman::SysmanKmdInterface::pFsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pProcfsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
MockSysmanKmdInterfacePrelim(const PRODUCT_FAMILY productFamily) : SysmanKmdInterfaceI915Prelim(productFamily) {}
|
||||
MockSysmanKmdInterfacePrelim(SysmanProductHelper *pSysmanProductHelper) : SysmanKmdInterfaceI915Prelim(pSysmanProductHelper) {}
|
||||
~MockSysmanKmdInterfacePrelim() override = default;
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ class MockSysmanKmdInterfaceUpstream : public L0::Sysman::SysmanKmdInterfaceI915
|
||||
using L0::Sysman::SysmanKmdInterface::pFsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pProcfsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
MockSysmanKmdInterfaceUpstream(const PRODUCT_FAMILY productFamily) : SysmanKmdInterfaceI915Upstream(productFamily) {}
|
||||
MockSysmanKmdInterfaceUpstream(SysmanProductHelper *pSysmanProductHelper) : SysmanKmdInterfaceI915Upstream(pSysmanProductHelper) {}
|
||||
~MockSysmanKmdInterfaceUpstream() override = default;
|
||||
};
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ class MockSysmanKmdInterfaceXe : public L0::Sysman::SysmanKmdInterfaceXe {
|
||||
using L0::Sysman::SysmanKmdInterface::pFsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pProcfsAccess;
|
||||
using L0::Sysman::SysmanKmdInterface::pSysfsAccess;
|
||||
MockSysmanKmdInterfaceXe(const PRODUCT_FAMILY productFamily) : SysmanKmdInterfaceXe(productFamily) {}
|
||||
MockSysmanKmdInterfaceXe(SysmanProductHelper *pSysmanProductHelper) : SysmanKmdInterfaceXe(pSysmanProductHelper) {}
|
||||
~MockSysmanKmdInterfaceXe() override = default;
|
||||
};
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "level_zero/sysman/test/unit_tests/sources/linux/mock_sysman_fixture.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/linux/mock_sysman_hw_device_id.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/memory/linux/mock_memory.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/shared/linux/mock_sysman_kmd_interface_i915.h"
|
||||
|
||||
namespace L0 {
|
||||
namespace Sysman {
|
||||
@@ -247,7 +248,7 @@ HWTEST2_F(SysmanProductHelperMemoryTest, GivenSysmanProductHelperInstanceWithPre
|
||||
bool isSubdevice = true;
|
||||
uint32_t subDeviceId = 0;
|
||||
|
||||
auto pSysmanKmdInterface = new MockSysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
MockMemorySysFsAccessInterface *pSysfsAccess = new MockMemorySysFsAccessInterface();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
@@ -272,7 +273,7 @@ HWTEST2_F(SysmanProductHelperMemoryTest, GivenSysmanProductHelperInstanceAndPhys
|
||||
bool isSubdevice = true;
|
||||
uint32_t subDeviceId = 0;
|
||||
|
||||
auto pSysmanKmdInterface = new MockSysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily());
|
||||
auto pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
MockMemorySysFsAccessInterface *pSysfsAccess = new MockMemorySysFsAccessInterface();
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
|
||||
@@ -47,6 +47,26 @@ HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenCalling
|
||||
EXPECT_EQ(expectedPowerUnit, pSysmanProductHelper->getPowerLimitUnit());
|
||||
}
|
||||
|
||||
HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenFetchingCardCriticalPowerLimitFileThenFilenameIsReturned, IsPVC) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_STREQ("curr1_crit", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCriticalPowerLimit, 0, false).c_str());
|
||||
}
|
||||
|
||||
HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenCallingGetCardCriticalPowerLimitNativeUnitThenCorrectValueIsReturned, IsPVC) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit));
|
||||
}
|
||||
|
||||
HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenFetchingCardCriticalPowerLimitFileThenFilenameIsReturned, IsNotPVC) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_STREQ("power1_crit", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCriticalPowerLimit, 0, false).c_str());
|
||||
}
|
||||
|
||||
HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenCallingGetCardCriticalPowerLimitNativeUnitThenCorrectValueIsReturned, IsNotPVC) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit));
|
||||
}
|
||||
|
||||
HWTEST2_F(SysmanProductHelperPowerTest, GivenValidProductHelperHandleWhenCallingGetPowerLimitUnitThenCorrectPowerLimitUnitIsReturned, IsNotPVC) {
|
||||
zes_limit_unit_t expectedPowerUnit = ZES_LIMIT_UNIT_POWER;
|
||||
auto pSysmanProductHelper = L0::Sysman::SysmanProductHelper::create(defaultHwInfo->platform.eProductFamily);
|
||||
|
||||
@@ -58,7 +58,7 @@ class SysmanFixtureDeviceI915Prelim : public SysmanDeviceFixture {
|
||||
void SetUp() override {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
device = pSysmanDevice;
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceI915Prelim(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
mockInitFsAccess();
|
||||
}
|
||||
|
||||
@@ -115,12 +115,11 @@ TEST_F(SysmanFixtureDeviceI915Prelim, GivenSysmanKmdInterfaceWhenGettingSysfsFil
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Prelim, GivenSysmanKmdInterfaceInstanceWhenCallingGetNativeUnitWithProperSysfsNameThenValidValuesAreReturned) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
}
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Prelim, GivenSysmanKmdInterfaceInstanceWhenCheckingSupportForI915DriverThenProperStatusIsReturned) {
|
||||
|
||||
@@ -68,7 +68,7 @@ class SysmanFixtureDeviceI915Upstream : public SysmanDeviceFixture {
|
||||
};
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Upstream, GivenSysmanKmdInterfaceWhenGettingSysfsFileNamesThenProperPathsAreReturned) {
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(productFamily);
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
bool baseDirectoryExists = true;
|
||||
EXPECT_STREQ("gt/gt0/rps_min_freq_mhz", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameMinFrequency, 0, baseDirectoryExists).c_str());
|
||||
EXPECT_STREQ("gt/gt0/rps_max_freq_mhz", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameMaxFrequency, 0, baseDirectoryExists).c_str());
|
||||
@@ -93,7 +93,7 @@ TEST_F(SysmanFixtureDeviceI915Upstream, GivenSysmanKmdInterfaceWhenGettingSysfsF
|
||||
}
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Upstream, GivenSysmanKmdInterfaceWhenGettingFilenamesAndBaseDirectoryDoesntExistThenProperPathsAreReturned) {
|
||||
auto pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceI915Upstream>(productFamily);
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
bool baseDirectoryExists = false;
|
||||
EXPECT_STREQ("gt_min_freq_mhz", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameMinFrequency, 0, baseDirectoryExists).c_str());
|
||||
EXPECT_STREQ("gt_max_freq_mhz", pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameMaxFrequency, 0, baseDirectoryExists).c_str());
|
||||
@@ -159,12 +159,11 @@ TEST_F(SysmanFixtureDeviceI915Upstream, GivenSysmanKmdInterfaceInstanceWhenCheck
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Upstream, GivenSysmanKmdInterfaceInstanceWhenCallingGetNativeUnitWithProperSysfsNameThenValidValuesAreReturned) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
}
|
||||
|
||||
TEST_F(SysmanFixtureDeviceI915Upstream, GivenGroupEngineTypeAndSysmanKmdInterfaceInstanceWhenGetEngineActivityFdIsCalledThenInvalidFdIsReturned) {
|
||||
|
||||
@@ -57,7 +57,7 @@ class SysmanFixtureDeviceXe : public SysmanDeviceFixture {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
device = pSysmanDevice;
|
||||
pPmuInterface = std::make_unique<MockPmuInterfaceImp>(pLinuxSysmanImp);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceXe(pLinuxSysmanImp->getProductFamily()));
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(new SysmanKmdInterfaceXe(pLinuxSysmanImp->getSysmanProductHelper()));
|
||||
mockInitFsAccess();
|
||||
pPmuInterface->pSysmanKmdInterface = pLinuxSysmanImp->pSysmanKmdInterface.get();
|
||||
VariableBackup<L0::Sysman::PmuInterface *> pmuBackup(&pLinuxSysmanImp->pPmuInterface);
|
||||
@@ -142,13 +142,12 @@ TEST_F(SysmanFixtureDeviceXe, GivenSysmanKmdInterfaceInstanceWhenCheckingPhysica
|
||||
|
||||
TEST_F(SysmanFixtureDeviceXe, GivenSysmanKmdInterfaceInstanceWhenCallingGetNativeUnitWithProperSysfsNameThenValidValuesAreReturned) {
|
||||
auto pSysmanKmdInterface = pLinuxSysmanImp->getSysmanKmdInterface();
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeoutMaximum));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameCriticalPowerLimit));
|
||||
EXPECT_EQ(SysmanKmdInterface::SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerTimeslice));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeout));
|
||||
EXPECT_EQ(SysfsValueUnit::milli, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSchedulerWatchDogTimeoutMaximum));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameSustainedPowerLimit));
|
||||
EXPECT_EQ(SysfsValueUnit::micro, pSysmanKmdInterface->getNativeUnit(SysfsName::sysfsNameDefaultPowerLimit));
|
||||
}
|
||||
|
||||
TEST_F(SysmanFixtureDeviceXe, GivenGroupEngineTypeAndSysmanKmdInterfaceInstanceWhenGetEngineActivityFdIsCalledThenInvalidFdIsReturned) {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper_hw.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/linux/mock_sysman_fixture.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/shared/linux/mock_sysman_kmd_interface_i915.h"
|
||||
#include "level_zero/sysman/test/unit_tests/sources/standby/linux/mock_sysfs_standby.h"
|
||||
|
||||
namespace L0 {
|
||||
@@ -30,7 +31,7 @@ class ZesStandbyFixture : public SysmanDeviceFixture {
|
||||
class ZesStandbyFixtureI915 : public ZesStandbyFixture {
|
||||
protected:
|
||||
zes_standby_handle_t hSysmanStandby = {};
|
||||
PublicSysmanKmdInterfaceI915 *pSysmanKmdInterface = nullptr;
|
||||
MockSysmanKmdInterfacePrelim *pSysmanKmdInterface = nullptr;
|
||||
MockStandbySysfsAccessInterface *pSysfsAccess = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
@@ -45,7 +46,7 @@ class ZesStandbyFixtureI915 : public ZesStandbyFixture {
|
||||
}
|
||||
|
||||
void mockKMDInterfaceSetup() {
|
||||
pSysmanKmdInterface = new PublicSysmanKmdInterfaceI915(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = new MockSysmanKmdInterfacePrelim(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
pSysfsAccess = new MockStandbySysfsAccessInterface();
|
||||
pSysmanKmdInterface->pSysfsAccess.reset(pSysfsAccess);
|
||||
pLinuxSysmanImp->pSysmanKmdInterface.reset(pSysmanKmdInterface);
|
||||
@@ -366,7 +367,7 @@ class ZesStandbyFixtureXe : public ZesStandbyFixture {
|
||||
void SetUp() override {
|
||||
SysmanDeviceFixture::SetUp();
|
||||
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getProductFamily());
|
||||
pSysmanKmdInterface = std::make_unique<SysmanKmdInterfaceXe>(pLinuxSysmanImp->getSysmanProductHelper());
|
||||
device = pSysmanDevice;
|
||||
pSysmanDeviceImp->pStandbyHandleContext->handleList.clear();
|
||||
subDeviceCount = pLinuxSysmanImp->getSubDeviceCount();
|
||||
|
||||
Reference in New Issue
Block a user