mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
feature(sysman): Expose the config pair to the Engine Handle
Related-To: NEO-14635 Signed-off-by: Pratik Bari <pratik.bari@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
2ea6c09f51
commit
2113882bf5
@@ -115,7 +115,12 @@ class SysmanKmdInterface {
|
||||
virtual std::string getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) = 0;
|
||||
virtual std::string getSysfsFilePathForPhysicalMemorySize(uint32_t subDeviceId) = 0;
|
||||
virtual std::string getEnergyCounterNodeFile(zes_power_domain_t powerDomain) = 0;
|
||||
virtual ze_result_t getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) = 0;
|
||||
virtual ze_result_t getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) = 0;
|
||||
virtual ze_result_t readBusynessFromGroupFd(PmuInterface *const &pPmuInterface, std::pair<int64_t, int64_t> &fdPair, zes_engine_stats_t *pStats) = 0;
|
||||
virtual std::string getHwmonName(uint32_t subDeviceId, bool isSubdevice) const = 0;
|
||||
virtual bool isStandbyModeControlAvailable() const = 0;
|
||||
@@ -191,7 +196,12 @@ class SysmanKmdInterfaceI915Upstream : public SysmanKmdInterface, SysmanKmdInter
|
||||
std::string getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override;
|
||||
std::string getSysfsFilePathForPhysicalMemorySize(uint32_t subDeviceId) override;
|
||||
std::string getEnergyCounterNodeFile(zes_power_domain_t powerDomain) override;
|
||||
ze_result_t getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) override;
|
||||
ze_result_t getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) override;
|
||||
ze_result_t readBusynessFromGroupFd(PmuInterface *const &pPmuInterface, std::pair<int64_t, int64_t> &fdPair, zes_engine_stats_t *pStats) override;
|
||||
std::string getHwmonName(uint32_t subDeviceId, bool isSubdevice) const override;
|
||||
bool isStandbyModeControlAvailable() const override { return true; }
|
||||
@@ -241,7 +251,12 @@ class SysmanKmdInterfaceI915Prelim : public SysmanKmdInterface, SysmanKmdInterfa
|
||||
std::string getSysfsFilePath(SysfsName sysfsName, uint32_t subDeviceId, bool baseDirectoryExists) override;
|
||||
std::string getSysfsFilePathForPhysicalMemorySize(uint32_t subDeviceId) override;
|
||||
std::string getEnergyCounterNodeFile(zes_power_domain_t powerDomain) override;
|
||||
ze_result_t getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) override;
|
||||
ze_result_t getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) override;
|
||||
ze_result_t readBusynessFromGroupFd(PmuInterface *const &pPmuInterface, std::pair<int64_t, int64_t> &fdPair, zes_engine_stats_t *pStats) override;
|
||||
std::string getHwmonName(uint32_t subDeviceId, bool isSubdevice) const override;
|
||||
bool isStandbyModeControlAvailable() const override { return true; }
|
||||
@@ -292,7 +307,12 @@ class SysmanKmdInterfaceXe : public SysmanKmdInterface {
|
||||
std::string getSysfsFilePathForPhysicalMemorySize(uint32_t subDeviceId) override;
|
||||
std::string getEngineBasePath(uint32_t subDeviceId) const override;
|
||||
std::string getEnergyCounterNodeFile(zes_power_domain_t powerDomain) override;
|
||||
ze_result_t getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) override;
|
||||
ze_result_t getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) override;
|
||||
ze_result_t readBusynessFromGroupFd(PmuInterface *const &pPmuInterface, std::pair<int64_t, int64_t> &fdPair, zes_engine_stats_t *pStats) override;
|
||||
std::string getHwmonName(uint32_t subDeviceId, bool isSubdevice) const override;
|
||||
bool isStandbyModeControlAvailable() const override { return false; }
|
||||
|
||||
@@ -104,7 +104,12 @@ std::string SysmanKmdInterfaceI915Prelim::getEnergyCounterNodeFile(zes_power_dom
|
||||
return filePath;
|
||||
}
|
||||
|
||||
ze_result_t SysmanKmdInterfaceI915Prelim::getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) {
|
||||
ze_result_t SysmanKmdInterfaceI915Prelim::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) {
|
||||
uint64_t config = UINT64_MAX;
|
||||
switch (engineGroup) {
|
||||
case ZES_ENGINE_GROUP_ALL:
|
||||
@@ -127,14 +132,15 @@ ze_result_t SysmanKmdInterfaceI915Prelim::getEngineActivityFdList(zes_engine_gro
|
||||
}
|
||||
|
||||
int64_t fd[2];
|
||||
fd[0] = pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
auto i915EngineClass = engineGroupToEngineClass.find(engineGroup);
|
||||
configPair = std::make_pair(config, PRELIM_I915_PMU_ENGINE_TOTAL_TICKS(i915EngineClass->second, engineInstance));
|
||||
fd[0] = pPmuInterface->pmuInterfaceOpen(configPair.first, -1, PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
if (fd[0] < 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Could not open Busy Ticks Handle \n", __FUNCTION__);
|
||||
return checkErrorNumberAndReturnStatus();
|
||||
}
|
||||
|
||||
auto i915EngineClass = engineGroupToEngineClass.find(engineGroup);
|
||||
fd[1] = pPmuInterface->pmuInterfaceOpen(PRELIM_I915_PMU_ENGINE_TOTAL_TICKS(i915EngineClass->second, engineInstance), static_cast<int>(fd[0]), PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
fd[1] = pPmuInterface->pmuInterfaceOpen(configPair.second, static_cast<int>(fd[0]), PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
if (fd[1] < 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Could not open Total Active Ticks Handle \n", __FUNCTION__);
|
||||
close(static_cast<int>(fd[0]));
|
||||
|
||||
@@ -97,11 +97,17 @@ std::string SysmanKmdInterfaceI915Upstream::getEnergyCounterNodeFile(zes_power_d
|
||||
return filePath;
|
||||
}
|
||||
|
||||
ze_result_t SysmanKmdInterfaceI915Upstream::getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) {
|
||||
ze_result_t SysmanKmdInterfaceI915Upstream::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) {
|
||||
uint64_t config = UINT64_MAX;
|
||||
auto engineClass = engineGroupToEngineClass.find(engineGroup);
|
||||
config = I915_PMU_ENGINE_BUSY(engineClass->second, engineInstance);
|
||||
auto fd = pPmuInterface->pmuInterfaceOpen(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED);
|
||||
configPair = std::make_pair(config, UINT64_MAX);
|
||||
auto fd = pPmuInterface->pmuInterfaceOpen(configPair.first, -1, PERF_FORMAT_TOTAL_TIME_ENABLED);
|
||||
if (fd < 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Could not open Busy Ticks Handle \n", __FUNCTION__);
|
||||
return checkErrorNumberAndReturnStatus();
|
||||
|
||||
@@ -101,7 +101,12 @@ std::string SysmanKmdInterfaceXe::getEnergyCounterNodeFile(zes_power_domain_t po
|
||||
return filePath;
|
||||
}
|
||||
|
||||
ze_result_t SysmanKmdInterfaceXe::getEngineActivityFdList(zes_engine_group_t engineGroup, uint32_t engineInstance, uint32_t gtId, PmuInterface *const &pPmuInterface, std::vector<std::pair<int64_t, int64_t>> &fdList) {
|
||||
ze_result_t SysmanKmdInterfaceXe::getEngineActivityFdListAndConfigPair(zes_engine_group_t engineGroup,
|
||||
uint32_t engineInstance,
|
||||
uint32_t gtId,
|
||||
PmuInterface *const &pPmuInterface,
|
||||
std::vector<std::pair<int64_t, int64_t>> &fdList,
|
||||
std::pair<uint64_t, uint64_t> &configPair) {
|
||||
|
||||
ze_result_t result = ZE_RESULT_SUCCESS;
|
||||
|
||||
@@ -123,14 +128,16 @@ ze_result_t SysmanKmdInterfaceXe::getEngineActivityFdList(zes_engine_group_t eng
|
||||
return result;
|
||||
}
|
||||
|
||||
configPair = std::make_pair(activeTicksConfig, totalTicksConfig);
|
||||
|
||||
int64_t fd[2];
|
||||
fd[0] = pPmuInterface->pmuInterfaceOpen(activeTicksConfig, -1, PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
fd[0] = pPmuInterface->pmuInterfaceOpen(configPair.first, -1, PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
if (fd[0] < 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Could not open Busy Ticks Handle \n", __FUNCTION__);
|
||||
return checkErrorNumberAndReturnStatus();
|
||||
}
|
||||
|
||||
fd[1] = pPmuInterface->pmuInterfaceOpen(totalTicksConfig, static_cast<int>(fd[0]), PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
fd[1] = pPmuInterface->pmuInterfaceOpen(configPair.second, static_cast<int>(fd[0]), PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
|
||||
if (fd[1] < 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Could not open Total Active Ticks Handle \n", __FUNCTION__);
|
||||
close(static_cast<int>(fd[0]));
|
||||
|
||||
Reference in New Issue
Block a user