@@ -75,11 +75,11 @@ enum class SysfsName {
7575 sysfsNameThrottleReasonPL2,
7676 sysfsNameThrottleReasonPL4,
7777 sysfsNameThrottleReasonThermal,
78- sysfsNameSustainedPowerLimit ,
79- sysfsNameSustainedPowerLimitInterval ,
80- sysfsNameEnergyCounterNode ,
81- sysfsNameDefaultPowerLimit ,
82- sysfsNameCriticalPowerLimit ,
78+ sysfsNameCardSustainedPowerLimit ,
79+ sysfsNameCardSustainedPowerLimitInterval ,
80+ sysfsNameCardEnergyCounterNode ,
81+ sysfsNameCardDefaultPowerLimit ,
82+ sysfsNameCardCriticalPowerLimit ,
8383 sysfsNameStandbyModeControl,
8484 sysfsNameMemoryAddressRange,
8585 sysfsNameMaxMemoryFrequency,
@@ -93,6 +93,11 @@ enum class SysfsName {
9393 sysfsNamePerformanceBaseFrequencyFactorScale,
9494 sysfsNamePerformanceMediaFrequencyFactorScale,
9595 sysfsNamePerformanceSystemPowerBalance,
96+ sysfsNamePackageSustainedPowerLimit,
97+ sysfsNamePackageSustainedPowerLimitInterval,
98+ sysfsNamePackageDefaultPowerLimit,
99+ sysfsNamePackageCriticalPowerLimit,
100+ sysfsNamePackageEnergyCounterNode,
96101};
97102
98103enum class SysfsValueUnit {
@@ -111,6 +116,8 @@ class SysmanKmdInterface {
111116 virtual std::string getBasePath (uint32_t subDeviceId) const = 0;
112117 virtual std::string getSysfsFilePath (SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) = 0;
113118 virtual std::string getSysfsFilePathForPhysicalMemorySize (uint32_t subDeviceId) = 0;
119+ virtual std::string getSysfsFilePathForPower (SysfsName sysfsName) = 0;
120+ virtual std::string getEnergyCounterNodeFilePath (zes_power_domain_t powerDomain) = 0;
114121 virtual int64_t getEngineActivityFd (zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t subDeviceId, PmuInterface *const &pmuInterface) = 0;
115122 virtual std::string getHwmonName (uint32_t subDeviceId, bool isSubdevice) const = 0;
116123 virtual bool isStandbyModeControlAvailable () const = 0;
@@ -151,6 +158,7 @@ class SysmanKmdInterface {
151158 virtual ze_result_t getBusyAndTotalTicksConfigs (uint64_t fnNumber, uint64_t engineInstance, uint64_t engineClass, std::pair<uint64_t , uint64_t > &configPair) = 0;
152159 virtual std::string getGpuBindEntry () const = 0;
153160 virtual std::string getGpuUnBindEntry () const = 0;
161+ virtual bool isPowerSupportForSubdeviceAvailable (zes_power_domain_t powerDomain) const = 0;
154162
155163 protected:
156164 std::unique_ptr<FsAccessInterface> pFsAccess;
@@ -181,6 +189,8 @@ class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInter
181189 std::string getBasePath (uint32_t subDeviceId) const override ;
182190 std::string getSysfsFilePath (SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override ;
183191 std::string getSysfsFilePathForPhysicalMemorySize (uint32_t subDeviceId) override ;
192+ std::string getSysfsFilePathForPower (SysfsName sysfsName) override ;
193+ std::string getEnergyCounterNodeFilePath (zes_power_domain_t powerDomain) override ;
184194 int64_t getEngineActivityFd (zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t subDeviceId, PmuInterface *const &pmuInterface) override ;
185195 std::string getHwmonName (uint32_t subDeviceId, bool isSubdevice) const override ;
186196 bool isStandbyModeControlAvailable () const override { return true ; }
@@ -209,6 +219,7 @@ class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInter
209219 ze_result_t getBusyAndTotalTicksConfigs (uint64_t fnNumber, uint64_t engineInstance, uint64_t engineClass, std::pair<uint64_t , uint64_t > &configPair) override ;
210220 std::string getGpuBindEntry () const override ;
211221 std::string getGpuUnBindEntry () const override ;
222+ bool isPowerSupportForSubdeviceAvailable (zes_power_domain_t powerDomain) const override ;
212223
213224 protected:
214225 std::map<SysfsName, valuePair> sysfsNameToFileMap;
@@ -228,6 +239,8 @@ class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfa
228239 std::string getBasePath (uint32_t subDeviceId) const override ;
229240 std::string getSysfsFilePath (SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override ;
230241 std::string getSysfsFilePathForPhysicalMemorySize (uint32_t subDeviceId) override ;
242+ std::string getSysfsFilePathForPower (SysfsName sysfsName) override ;
243+ std::string getEnergyCounterNodeFilePath (zes_power_domain_t powerDomain) override ;
231244 int64_t getEngineActivityFd (zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t subDeviceId, PmuInterface *const &pmuInterface) override ;
232245 std::string getHwmonName (uint32_t subDeviceId, bool isSubdevice) const override ;
233246 bool isStandbyModeControlAvailable () const override { return true ; }
@@ -256,6 +269,7 @@ class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfa
256269 ze_result_t getBusyAndTotalTicksConfigs (uint64_t fnNumber, uint64_t engineInstance, uint64_t engineClass, std::pair<uint64_t , uint64_t > &configPair) override ;
257270 std::string getGpuBindEntry () const override ;
258271 std::string getGpuUnBindEntry () const override ;
272+ bool isPowerSupportForSubdeviceAvailable (zes_power_domain_t powerDomain) const override ;
259273
260274 protected:
261275 std::map<SysfsName, valuePair> sysfsNameToFileMap;
@@ -275,6 +289,8 @@ class SysmanKmdInterfaceXe : public SysmanKmdInterface {
275289 std::string getBasePath (uint32_t subDeviceId) const override ;
276290 std::string getSysfsFilePath (SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override ;
277291 std::string getSysfsFilePathForPhysicalMemorySize (uint32_t subDeviceId) override ;
292+ std::string getSysfsFilePathForPower (SysfsName sysfsName) override ;
293+ std::string getEnergyCounterNodeFilePath (zes_power_domain_t powerDomain) override ;
278294 std::string getEngineBasePath (uint32_t subDeviceId) const override ;
279295 int64_t getEngineActivityFd (zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t subDeviceId, PmuInterface *const &pmuInterface) override ;
280296 std::string getHwmonName (uint32_t subDeviceId, bool isSubdevice) const override ;
@@ -305,6 +321,7 @@ class SysmanKmdInterfaceXe : public SysmanKmdInterface {
305321 ze_result_t getBusyAndTotalTicksConfigs (uint64_t fnNumber, uint64_t engineInstance, uint64_t engineClass, std::pair<uint64_t , uint64_t > &configPair) override ;
306322 std::string getGpuBindEntry () const override ;
307323 std::string getGpuUnBindEntry () const override ;
324+ bool isPowerSupportForSubdeviceAvailable (zes_power_domain_t powerDomain) const override { return false ; }
308325
309326 protected:
310327 std::map<SysfsName, valuePair> sysfsNameToFileMap;
0 commit comments