fix(sysman): fix Burst Power Limit node retrieval issue in i915 platforms

Related-To: NEO-15450

Signed-off-by: Anvesh Bakwad <anvesh.bakwad@intel.com>
This commit is contained in:
Anvesh Bakwad
2025-07-07 09:24:16 +00:00
committed by Compute-Runtime-Automation
parent fa7e4a3372
commit 3dfc6601ba
8 changed files with 57 additions and 4 deletions

View File

@@ -378,14 +378,14 @@ void LinuxPowerImp::init() {
}
if (powerDomain == ZES_POWER_DOMAIN_PACKAGE) {
burstPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePackageBurstPowerLimit, subdeviceId, false);
burstPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePackageBurstPowerLimitInterval, subdeviceId, false);
burstPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getBurstPowerLimitFile(SysfsName::sysfsNamePackageBurstPowerLimit, subdeviceId, false);
burstPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getBurstPowerLimitFile(SysfsName::sysfsNamePackageBurstPowerLimitInterval, subdeviceId, false);
criticalPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePackageCriticalPowerLimit, subdeviceId, false);
sustainedPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePackageSustainedPowerLimit, subdeviceId, false);
sustainedPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNamePackageSustainedPowerLimitInterval, subdeviceId, false);
} else if (powerDomain == ZES_POWER_DOMAIN_CARD) {
burstPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCardBurstPowerLimit, subdeviceId, false);
burstPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCardBurstPowerLimitInterval, subdeviceId, false);
burstPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getBurstPowerLimitFile(SysfsName::sysfsNameCardBurstPowerLimit, subdeviceId, false);
burstPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getBurstPowerLimitFile(SysfsName::sysfsNameCardBurstPowerLimitInterval, subdeviceId, false);
criticalPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCardCriticalPowerLimit, subdeviceId, false);
sustainedPowerLimitFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCardSustainedPowerLimit, subdeviceId, false);
sustainedPowerLimitIntervalFile = intelGraphicsHwmonDir + "/" + pSysmanKmdInterface->getSysfsFilePath(SysfsName::sysfsNameCardSustainedPowerLimitInterval, subdeviceId, false);

View File

@@ -177,6 +177,7 @@ class SysmanKmdInterface {
virtual std::string getGpuUnBindEntry() const = 0;
virtual std::vector<zes_power_domain_t> getPowerDomains() const = 0;
virtual void setSysmanDeviceDirName(const bool isIntegratedDevice) = 0;
virtual std::string getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) = 0;
const std::string getSysmanDeviceDirName() const;
ze_result_t checkErrorNumberAndReturnStatus();
@@ -251,6 +252,7 @@ class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInter
std::string getGpuUnBindEntry() const override;
std::vector<zes_power_domain_t> getPowerDomains() const override { return {ZES_POWER_DOMAIN_PACKAGE}; }
void setSysmanDeviceDirName(const bool isIntegratedDevice) override;
std::string getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override;
protected:
std::map<SysfsName, valuePair> sysfsNameToFileMap;
@@ -311,6 +313,7 @@ class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfa
std::string getGpuUnBindEntry() const override;
std::vector<zes_power_domain_t> getPowerDomains() const override { return {ZES_POWER_DOMAIN_PACKAGE}; }
void setSysmanDeviceDirName(const bool isIntegratedDevice) override;
std::string getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override;
protected:
std::map<SysfsName, valuePair> sysfsNameToFileMap;
@@ -373,6 +376,7 @@ class SysmanKmdInterfaceXe : public SysmanKmdInterface {
std::string getGpuBindEntry() const override;
std::string getGpuUnBindEntry() const override;
void setSysmanDeviceDirName(const bool isIntegratedDevice) override;
std::string getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override;
protected:
std::map<SysfsName, valuePair> sysfsNameToFileMap;

View File

@@ -104,6 +104,10 @@ std::string SysmanKmdInterfaceI915Prelim::getEnergyCounterNodeFile(zes_power_dom
return filePath;
}
std::string SysmanKmdInterfaceI915Prelim::getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) {
return "";
}
ze_result_t SysmanKmdInterfaceI915Prelim::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
uint32_t engineInstance,
uint32_t gtId,

View File

@@ -97,6 +97,10 @@ std::string SysmanKmdInterfaceI915Upstream::getEnergyCounterNodeFile(zes_power_d
return filePath;
}
std::string SysmanKmdInterfaceI915Upstream::getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) {
return "";
}
ze_result_t SysmanKmdInterfaceI915Upstream::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
uint32_t engineInstance,
uint32_t gtId,

View File

@@ -137,6 +137,10 @@ std::string SysmanKmdInterfaceXe::getEnergyCounterNodeFile(zes_power_domain_t po
return filePath;
}
std::string SysmanKmdInterfaceXe::getBurstPowerLimitFile(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) {
return getSysfsFilePath(sysfsName, subDeviceId, false);
}
ze_result_t SysmanKmdInterfaceXe::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
uint32_t engineInstance,
uint32_t gtId,