Fix misc memory leaks
Change-Id: I3dbf56e98d8c1312f9081956ed590962b2bdace3
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
[ROCm/amdsmi commit: 44c189b9f5]
This commit is contained in:
@@ -255,6 +255,7 @@ class Device {
|
||||
rsmi_status_t dev_log_gpu_metrics(std::ostringstream& outstream_metrics);
|
||||
AMGpuMetricsPublicLatestTupl_t dev_copy_internal_to_external_metrics();
|
||||
|
||||
static const std::map<DevInfoTypes, const char*> devInfoTypesStrings;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Monitor> monitor_;
|
||||
|
||||
@@ -724,7 +724,7 @@ class GpuMetricsBase_t
|
||||
|
||||
};
|
||||
using GpuMetricsBasePtr = std::shared_ptr<GpuMetricsBase_t>;
|
||||
using AMDGpuMetricFactories_t = std::map<AMDGpuMetricVersionFlags_t, GpuMetricsBasePtr>;
|
||||
using AMDGpuMetricFactories_t = const std::map<AMDGpuMetricVersionFlags_t, GpuMetricsBasePtr>;
|
||||
|
||||
|
||||
class GpuMetricsBase_v11_t final : public GpuMetricsBase_t
|
||||
|
||||
@@ -117,7 +117,6 @@ class RocmSMI {
|
||||
void debugRSMIEnvVarInfo();
|
||||
bool isLoggingOn(void);
|
||||
uint32_t getLogSetting(void);
|
||||
static const std::map<amd::smi::DevInfoTypes, std::string> devInfoTypesStrings;
|
||||
|
||||
private:
|
||||
std::vector<std::shared_ptr<Device>> devices_;
|
||||
|
||||
@@ -82,7 +82,7 @@ using amd::smi::monitorTypesToString;
|
||||
using amd::smi::getRSMIStatusString;
|
||||
using amd::smi::AMDGpuMetricsUnitType_t;
|
||||
using amd::smi::AMDGpuMetricTypeId_t;
|
||||
auto &devInfoTypesStrings = amd::smi::RocmSMI::devInfoTypesStrings;
|
||||
auto &devInfoTypesStrings = amd::smi::Device::devInfoTypesStrings;
|
||||
|
||||
static const uint32_t kMaxOverdriveLevel = 20;
|
||||
static const float kEnergyCounterResolution = 15.3F;
|
||||
@@ -2027,7 +2027,7 @@ enum eNameStrType {
|
||||
NAME_STR_SUBSYS
|
||||
};
|
||||
|
||||
std::map<std::string, rsmi_compute_partition_type_t>
|
||||
static const std::map<std::string, rsmi_compute_partition_type_t>
|
||||
mapStringToRSMIComputePartitionTypes {
|
||||
{"CPX", RSMI_COMPUTE_PARTITION_CPX},
|
||||
{"SPX", RSMI_COMPUTE_PARTITION_SPX},
|
||||
@@ -2036,7 +2036,7 @@ mapStringToRSMIComputePartitionTypes {
|
||||
{"QPX", RSMI_COMPUTE_PARTITION_QPX}
|
||||
};
|
||||
|
||||
std::map<rsmi_compute_partition_type_t, std::string>
|
||||
static const std::map<rsmi_compute_partition_type_t, std::string>
|
||||
mapRSMIToStringComputePartitionTypes {
|
||||
{RSMI_COMPUTE_PARTITION_INVALID, "UNKNOWN"},
|
||||
{RSMI_COMPUTE_PARTITION_CPX, "CPX"},
|
||||
@@ -2046,7 +2046,7 @@ mapRSMIToStringComputePartitionTypes {
|
||||
{RSMI_COMPUTE_PARTITION_QPX, "QPX"}
|
||||
};
|
||||
|
||||
std::map<rsmi_memory_partition_type_t, std::string>
|
||||
static const std::map<rsmi_memory_partition_type_t, std::string>
|
||||
mapRSMIToStringMemoryPartitionTypes {
|
||||
{RSMI_MEMORY_PARTITION_UNKNOWN, "UNKNOWN"},
|
||||
{RSMI_MEMORY_PARTITION_NPS1, "NPS1"},
|
||||
@@ -2055,7 +2055,7 @@ mapRSMIToStringMemoryPartitionTypes {
|
||||
{RSMI_MEMORY_PARTITION_NPS8, "NPS8"}
|
||||
};
|
||||
|
||||
std::map<std::string, rsmi_memory_partition_type_t>
|
||||
static const std::map<std::string, rsmi_memory_partition_type_t>
|
||||
mapStringToMemoryPartitionTypes {
|
||||
{"NPS1", RSMI_MEMORY_PARTITION_NPS1},
|
||||
{"NPS2", RSMI_MEMORY_PARTITION_NPS2},
|
||||
|
||||
@@ -336,7 +336,7 @@ static const std::map<rsmi_dev_perf_level, const char *> kDevPerfLvlMap = {
|
||||
{RSMI_DEV_PERF_LEVEL_UNKNOWN, kDevPerfLevelUnknownStr},
|
||||
};
|
||||
|
||||
static std::map<DevInfoTypes, uint8_t> kDevInfoVarTypeToRSMIVariant = {
|
||||
static const std::map<DevInfoTypes, uint8_t> kDevInfoVarTypeToRSMIVariant = {
|
||||
// rsmi_memory_type_t
|
||||
{kDevMemTotGTT, RSMI_MEM_TYPE_GTT},
|
||||
{kDevMemTotVisVRAM, RSMI_MEM_TYPE_VIS_VRAM},
|
||||
@@ -391,6 +391,89 @@ static std::map<DevInfoTypes, uint8_t> kDevInfoVarTypeToRSMIVariant = {
|
||||
{kDevDFCountersAvailable, RSMI_EVNT_GRP_XGMI}
|
||||
};
|
||||
|
||||
const std::map<DevInfoTypes, const char*>
|
||||
Device::devInfoTypesStrings = {
|
||||
{kDevPerfLevel, "kDevPerfLevel"},
|
||||
{kDevOverDriveLevel, "kDevOverDriveLevel"},
|
||||
{kDevMemOverDriveLevel, "kDevMemOverDriveLevel"},
|
||||
{kDevDevID, "kDevDevID"},
|
||||
{kDevXGMIPhysicalID, "kDevXGMIPhysicalID"},
|
||||
{kDevDevRevID, "kDevDevRevID"},
|
||||
{kDevDevProdName, "kDevDevProdName"},
|
||||
{kDevBoardInfo, "kDevBoardInfo"},
|
||||
{kDevDevProdNum, "kDevDevProdNum"},
|
||||
{kDevVendorID, "kDevVendorID"},
|
||||
{kDevSubSysDevID, "kDevSubSysDevID"},
|
||||
{kDevSubSysVendorID, "kDevSubSysVendorID"},
|
||||
{kDevGPUMClk, "kDevGPUMClk"},
|
||||
{kDevGPUSClk, "kDevGPUSClk"},
|
||||
{kDevDCEFClk, "kDevDCEFClk"},
|
||||
{kDevFClk, "kDevFClk"},
|
||||
{kDevSOCClk, "kDevSOCClk"},
|
||||
{kDevPCIEClk, "kDevPCIEClk"},
|
||||
{kDevPowerProfileMode, "kDevPowerProfileMode"},
|
||||
{kDevUsage, "kDevUsage"},
|
||||
{kDevPowerODVoltage, "kDevPowerODVoltage"},
|
||||
{kDevVBiosVer, "kDevVBiosVer"},
|
||||
{kDevPCIEThruPut, "kDevPCIEThruPut"},
|
||||
{kDevErrCntSDMA, "kDevErrCntSDMA"},
|
||||
{kDevErrCntUMC, "kDevErrCntUMC"},
|
||||
{kDevErrCntGFX, "kDevErrCntGFX"},
|
||||
{kDevErrCntMMHUB, "kDevErrCntMMHUB"},
|
||||
{kDevErrCntPCIEBIF, "kDevErrCntPCIEBIF"},
|
||||
{kDevErrCntHDP, "kDevErrCntHDP"},
|
||||
{kDevErrCntXGMIWAFL, "kDevErrCntXGMIWAFL"},
|
||||
{kDevErrCntFeatures, "kDevErrCntFeatures"},
|
||||
{kDevErrRASSchema, "kDevErrRASSchema"},
|
||||
{kDevErrTableVersion, "kDevErrTableVersion"},
|
||||
{kDevMemTotGTT, "kDevMemTotGTT"},
|
||||
{kDevMemTotVisVRAM, "kDevMemTotVisVRAM"},
|
||||
{kDevMemTotVRAM, "kDevMemTotVRAM"},
|
||||
{kDevMemUsedGTT, "kDevMemUsedGTT"},
|
||||
{kDevMemUsedVisVRAM, "kDevMemUsedVisVRAM"},
|
||||
{kDevMemUsedVRAM, "kDevMemUsedVRAM"},
|
||||
{kDevVramVendor, "kDevVramVendor"},
|
||||
{kDevPCIEReplayCount, "kDevPCIEReplayCount"},
|
||||
{kDevUniqueId, "kDevUniqueId"},
|
||||
{kDevDFCountersAvailable, "kDevDFCountersAvailable"},
|
||||
{kDevMemBusyPercent, "kDevMemBusyPercent"},
|
||||
{kDevXGMIError, "kDevXGMIError"},
|
||||
{kDevFwVersionAsd, "kDevFwVersionAsd"},
|
||||
{kDevFwVersionCe, "kDevFwVersionCe"},
|
||||
{kDevFwVersionDmcu, "kDevFwVersionDmcu"},
|
||||
{kDevFwVersionMc, "kDevFwVersionMc"},
|
||||
{kDevFwVersionMe, "kDevFwVersionMe"},
|
||||
{kDevFwVersionMec, "kDevFwVersionMec"},
|
||||
{kDevFwVersionMec2, "kDevFwVersionMec2"},
|
||||
{kDevFwVersionMes, "kDevFwVersionMes"},
|
||||
{kDevFwVersionMesKiq, "kDevFwVersionMesKiq"},
|
||||
{kDevFwVersionPfp, "kDevFwVersionPfp"},
|
||||
{kDevFwVersionRlc, "kDevFwVersionRlc"},
|
||||
{kDevFwVersionRlcSrlc, "kDevFwVersionRlcSrlc"},
|
||||
{kDevFwVersionRlcSrlg, "kDevFwVersionRlcSrlg"},
|
||||
{kDevFwVersionRlcSrls, "kDevFwVersionRlcSrls"},
|
||||
{kDevFwVersionSdma, "kDevFwVersionSdma"},
|
||||
{kDevFwVersionSdma2, "kDevFwVersionSdma2"},
|
||||
{kDevFwVersionSmc, "kDevFwVersionSmc"},
|
||||
{kDevFwVersionSos, "kDevFwVersionSos"},
|
||||
{kDevFwVersionTaRas, "kDevFwVersionTaRas"},
|
||||
{kDevFwVersionTaXgmi, "kDevFwVersionTaXgmi"},
|
||||
{kDevFwVersionUvd, "kDevFwVersionUvd"},
|
||||
{kDevFwVersionVce, "kDevFwVersionVce"},
|
||||
{kDevFwVersionVcn, "kDevFwVersionVcn"},
|
||||
{kDevSerialNumber, "kDevSerialNumber"},
|
||||
{kDevMemPageBad, "kDevMemPageBad"},
|
||||
{kDevNumaNode, "kDevNumaNode"},
|
||||
{kDevGpuMetrics, "kDevGpuMetrics"},
|
||||
{kDevPmMetrics, "kDevPmMetrics"},
|
||||
{kDevRegMetrics, "kDevRegMetrics"},
|
||||
{kDevGpuReset, "kDevGpuReset"},
|
||||
{kDevAvailableComputePartition, "kDevAvailableComputePartition"},
|
||||
{kDevComputePartition, "kDevComputePartition"},
|
||||
{kDevMemoryPartition, "kDevMemoryPartition"},
|
||||
{kDevPCieVendorID, "kDevPCieVendorID"},
|
||||
};
|
||||
|
||||
static const std::map<const char *, dev_depends_t> kDevFuncDependsMap = {
|
||||
// Functions with only mandatory dependencies
|
||||
{"rsmi_dev_vram_vendor_get", {{kDevVramVendorFName}, {}}},
|
||||
@@ -644,7 +727,7 @@ int Device::openSysfsFileStream(DevInfoTypes type, T *fs, const char *str) {
|
||||
if (ret != 0) {
|
||||
ss << __PRETTY_FUNCTION__ << " | Issue: File did not exist - SYSFS file ("
|
||||
<< sysfs_path
|
||||
<< ") for DevInfoInfoType (" << RocmSMI::devInfoTypesStrings.at(type)
|
||||
<< ") for DevInfoInfoType (" << devInfoTypesStrings.at(type)
|
||||
<< "), returning " << std::to_string(ret);
|
||||
LOG_ERROR(ss);
|
||||
return ret;
|
||||
@@ -653,7 +736,7 @@ int Device::openSysfsFileStream(DevInfoTypes type, T *fs, const char *str) {
|
||||
ss << __PRETTY_FUNCTION__
|
||||
<< " | Issue: File is not a regular file - SYSFS file ("
|
||||
<< sysfs_path << ") for "
|
||||
<< "DevInfoInfoType (" << RocmSMI::devInfoTypesStrings.at(type) << "),"
|
||||
<< "DevInfoInfoType (" << devInfoTypesStrings.at(type) << "),"
|
||||
<< " returning ENOENT (" << std::strerror(ENOENT) << ")";
|
||||
LOG_ERROR(ss);
|
||||
return ENOENT;
|
||||
@@ -664,7 +747,7 @@ int Device::openSysfsFileStream(DevInfoTypes type, T *fs, const char *str) {
|
||||
if (!fs->is_open()) {
|
||||
ss << __PRETTY_FUNCTION__
|
||||
<< " | Issue: Could not open - SYSFS file (" << sysfs_path << ") for "
|
||||
<< "DevInfoInfoType (" << RocmSMI::devInfoTypesStrings.at(type) << "), "
|
||||
<< "DevInfoInfoType (" << devInfoTypesStrings.at(type) << "), "
|
||||
<< ", returning " << std::to_string(errno) << " ("
|
||||
<< std::strerror(errno) << ")";
|
||||
LOG_ERROR(ss);
|
||||
@@ -673,7 +756,7 @@ int Device::openSysfsFileStream(DevInfoTypes type, T *fs, const char *str) {
|
||||
|
||||
ss << __PRETTY_FUNCTION__ << " | Successfully opened SYSFS file ("
|
||||
<< sysfs_path
|
||||
<< ") for DevInfoInfoType (" << RocmSMI::devInfoTypesStrings.at(type)
|
||||
<< ") for DevInfoInfoType (" << devInfoTypesStrings.at(type)
|
||||
<< ")";
|
||||
LOG_INFO(ss);
|
||||
return 0;
|
||||
@@ -690,7 +773,7 @@ int Device::readDebugInfoStr(DevInfoTypes type, std::string *retStr) {
|
||||
ret = openDebugFileStream(type, &fs);
|
||||
if (ret != 0) {
|
||||
ss << "Could not read debugInfoStr for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type)<< "), returning "
|
||||
<< devInfoTypesStrings.at(type)<< "), returning "
|
||||
<< std::to_string(ret);
|
||||
LOG_ERROR(ss);
|
||||
return ret;
|
||||
@@ -704,7 +787,7 @@ int Device::readDebugInfoStr(DevInfoTypes type, std::string *retStr) {
|
||||
fs.close();
|
||||
|
||||
ss << "Successfully read debugInfoStr for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type)<< "), retString= " << *retStr;
|
||||
<< devInfoTypesStrings.at(type)<< "), retString= " << *retStr;
|
||||
LOG_INFO(ss);
|
||||
|
||||
return 0;
|
||||
@@ -720,7 +803,7 @@ int Device::readDevInfoStr(DevInfoTypes type, std::string *retStr) {
|
||||
ret = openSysfsFileStream(type, &fs);
|
||||
if (ret != 0) {
|
||||
ss << "Could not read device info string for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << "), returning "
|
||||
<< devInfoTypesStrings.at(type) << "), returning "
|
||||
<< std::to_string(ret);
|
||||
LOG_ERROR(ss);
|
||||
return ret;
|
||||
@@ -729,8 +812,8 @@ int Device::readDevInfoStr(DevInfoTypes type, std::string *retStr) {
|
||||
fs >> *retStr;
|
||||
fs.close();
|
||||
ss << __PRETTY_FUNCTION__
|
||||
<< "Successfully read device info string for DevInfoType (" +
|
||||
RocmSMI::devInfoTypesStrings.at(type) + "): " + *retStr
|
||||
<< "Successfully read device info string for DevInfoType (" <<
|
||||
devInfoTypesStrings.at(type) << "): " + *retStr
|
||||
<< " | "
|
||||
<< (fs.is_open() ? " File stream is opened" : " File stream is closed")
|
||||
<< " | " << (fs.bad() ? "[ERROR] Bad read operation" :
|
||||
@@ -765,7 +848,7 @@ int Device::writeDevInfoStr(DevInfoTypes type, std::string valStr,
|
||||
fs.close();
|
||||
ss << __PRETTY_FUNCTION__ << " | Issue: Could not open fileStream; "
|
||||
<< "Could not write device info string (" << valStr
|
||||
<< ") for DevInfoType (" << RocmSMI::devInfoTypesStrings.at(type)
|
||||
<< ") for DevInfoType (" << devInfoTypesStrings.at(type)
|
||||
<< "), returning " << std::to_string(ret);
|
||||
LOG_ERROR(ss);
|
||||
return ret;
|
||||
@@ -776,7 +859,7 @@ int Device::writeDevInfoStr(DevInfoTypes type, std::string valStr,
|
||||
fs.flush();
|
||||
fs.close();
|
||||
ss << "Successfully wrote device info string (" << valStr
|
||||
<< ") for DevInfoType (" << RocmSMI::devInfoTypesStrings.at(type)
|
||||
<< ") for DevInfoType (" << devInfoTypesStrings.at(type)
|
||||
<< "), returning RSMI_STATUS_SUCCESS";
|
||||
LOG_INFO(ss);
|
||||
ret = RSMI_STATUS_SUCCESS;
|
||||
@@ -790,7 +873,7 @@ int Device::writeDevInfoStr(DevInfoTypes type, std::string valStr,
|
||||
fs.close();
|
||||
ss << __PRETTY_FUNCTION__ << " | Issue: Could not write to file; "
|
||||
<< "Could not write device info string (" << valStr
|
||||
<< ") for DevInfoType (" << RocmSMI::devInfoTypesStrings.at(type)
|
||||
<< ") for DevInfoType (" << devInfoTypesStrings.at(type)
|
||||
<< "), returning " << getRSMIStatusString(ErrnoToRsmiStatus(ret));
|
||||
ss << " | "
|
||||
<< (fs.is_open() ? "[ERROR] File stream open" :
|
||||
@@ -877,14 +960,14 @@ int Device::readDevInfoLine(DevInfoTypes type, std::string *line) {
|
||||
ret = openSysfsFileStream(type, &fs);
|
||||
if (ret != 0) {
|
||||
ss << "Could not read DevInfoLine for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ")";
|
||||
<< devInfoTypesStrings.at(type) << ")";
|
||||
LOG_ERROR(ss);
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::getline(fs, *line);
|
||||
ss << "Successfully read DevInfoLine for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << "), returning *line = "
|
||||
<< devInfoTypesStrings.at(type) << "), returning *line = "
|
||||
<< *line;
|
||||
LOG_INFO(ss);
|
||||
|
||||
@@ -903,7 +986,7 @@ int Device::readDevInfoBinary(DevInfoTypes type, std::size_t b_size,
|
||||
ptr = fopen(sysfs_path.c_str(), "rb");
|
||||
if (!ptr) {
|
||||
ss << "Could not read DevInfoBinary for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ")"
|
||||
<< devInfoTypesStrings.at(type) << ")"
|
||||
<< " - SYSFS (" << sysfs_path << ")"
|
||||
<< ", returning " << std::to_string(errno) << " ("
|
||||
<< std::strerror(errno) << ")";
|
||||
@@ -915,7 +998,7 @@ int Device::readDevInfoBinary(DevInfoTypes type, std::size_t b_size,
|
||||
fclose(ptr);
|
||||
if ((num*b_size) != b_size) {
|
||||
ss << "Could not read DevInfoBinary for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ") - SYSFS ("
|
||||
<< devInfoTypesStrings.at(type) << ") - SYSFS ("
|
||||
<< sysfs_path << "), binary size error; "
|
||||
<< "[buff: "
|
||||
<< p_binary_data
|
||||
@@ -929,7 +1012,7 @@ int Device::readDevInfoBinary(DevInfoTypes type, std::size_t b_size,
|
||||
return ENOENT;
|
||||
}
|
||||
ss << "Successfully read DevInfoBinary for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ") - SYSFS ("
|
||||
<< devInfoTypesStrings.at(type) << ") - SYSFS ("
|
||||
<< sysfs_path << "), returning binaryData = " << p_binary_data
|
||||
<< "; byte_size = " << std::dec << static_cast<int>(b_size);
|
||||
|
||||
@@ -961,7 +1044,7 @@ int Device::readDevInfoMultiLineStr(DevInfoTypes type,
|
||||
|
||||
if (retVec->empty()) {
|
||||
ss << "Read devInfoMultiLineStr for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ")"
|
||||
<< devInfoTypesStrings.at(type) << ")"
|
||||
<< ", but contained no string lines";
|
||||
LOG_ERROR(ss);
|
||||
return ENXIO;
|
||||
@@ -979,12 +1062,12 @@ int Device::readDevInfoMultiLineStr(DevInfoTypes type,
|
||||
|
||||
if (!allLines.empty()) {
|
||||
ss << "Successfully read devInfoMultiLineStr for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ") "
|
||||
<< devInfoTypesStrings.at(type) << ") "
|
||||
<< ", returning lines read = " << allLines;
|
||||
LOG_INFO(ss);
|
||||
} else {
|
||||
ss << "Read devInfoMultiLineStr for DevInfoType ("
|
||||
<< RocmSMI::devInfoTypesStrings.at(type) << ")"
|
||||
<< devInfoTypesStrings.at(type) << ")"
|
||||
<< ", but lines were empty";
|
||||
LOG_INFO(ss);
|
||||
return ENXIO;
|
||||
|
||||
@@ -368,7 +368,7 @@ GpuMetricsBasePtr amdgpu_metrics_factory(AMDGpuMetricVersionFlags_t gpu_metric_v
|
||||
<< " |";
|
||||
LOG_TRACE(ostrstream);
|
||||
|
||||
return (amd_gpu_metrics_factory_table[gpu_metric_version]);
|
||||
return (amd_gpu_metrics_factory_table.at(gpu_metric_version));
|
||||
}
|
||||
|
||||
ostrstream << __PRETTY_FUNCTION__
|
||||
|
||||
@@ -57,10 +57,8 @@
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include <climits>
|
||||
|
||||
#include "rocm_smi/rocm_smi.h"
|
||||
#include "rocm_smi/rocm_smi_device.h"
|
||||
@@ -79,91 +77,6 @@ static const char *kDeviceNamePrefix = "card";
|
||||
|
||||
static const char *kAMDMonitorTypes[] = {"radeon", "amdgpu", ""};
|
||||
|
||||
static const std::string amdSMI = "amd::smi::";
|
||||
const std::map<amd::smi::DevInfoTypes, std::string>
|
||||
amd::smi::RocmSMI::devInfoTypesStrings = {
|
||||
{amd::smi::kDevPerfLevel, amdSMI + "kDevPerfLevel"},
|
||||
{amd::smi::kDevOverDriveLevel, amdSMI + "kDevOverDriveLevel"},
|
||||
{amd::smi::kDevMemOverDriveLevel, amdSMI + "kDevMemOverDriveLevel"},
|
||||
{amd::smi::kDevDevID, amdSMI + "kDevDevID"},
|
||||
{amd::smi::kDevXGMIPhysicalID, amdSMI + "kDevXGMIPhysicalID"},
|
||||
{amd::smi::kDevDevRevID, amdSMI + "kDevDevRevID"},
|
||||
{amd::smi::kDevDevProdName, amdSMI + "kDevDevProdName"},
|
||||
{amd::smi::kDevBoardInfo, amdSMI + "kDevBoardInfo"},
|
||||
{amd::smi::kDevDevProdNum, amdSMI + "kDevDevProdNum"},
|
||||
{amd::smi::kDevVendorID, amdSMI + "kDevVendorID"},
|
||||
{amd::smi::kDevSubSysDevID, amdSMI + "kDevSubSysDevID"},
|
||||
{amd::smi::kDevSubSysVendorID, amdSMI + "kDevSubSysVendorID"},
|
||||
{amd::smi::kDevGPUMClk, amdSMI + "kDevGPUMClk"},
|
||||
{amd::smi::kDevGPUSClk, amdSMI + "kDevGPUSClk"},
|
||||
{amd::smi::kDevDCEFClk, amdSMI + "kDevDCEFClk"},
|
||||
{amd::smi::kDevFClk, amdSMI + "kDevFClk"},
|
||||
{amd::smi::kDevSOCClk, amdSMI + "kDevSOCClk"},
|
||||
{amd::smi::kDevPCIEClk, amdSMI + "kDevPCIEClk"},
|
||||
{amd::smi::kDevPowerProfileMode, amdSMI + "kDevPowerProfileMode"},
|
||||
{amd::smi::kDevUsage, amdSMI + "kDevUsage"},
|
||||
{amd::smi::kDevPowerODVoltage, amdSMI + "kDevPowerODVoltage"},
|
||||
{amd::smi::kDevVBiosVer, amdSMI + "kDevVBiosVer"},
|
||||
{amd::smi::kDevPCIEThruPut, amdSMI + "kDevPCIEThruPut"},
|
||||
{amd::smi::kDevErrCntSDMA, amdSMI + "kDevErrCntSDMA"},
|
||||
{amd::smi::kDevErrCntUMC, amdSMI + "kDevErrCntUMC"},
|
||||
{amd::smi::kDevErrCntGFX, amdSMI + "kDevErrCntGFX"},
|
||||
{amd::smi::kDevErrCntMMHUB, amdSMI + "kDevErrCntMMHUB"},
|
||||
{amd::smi::kDevErrCntPCIEBIF, amdSMI + "kDevErrCntPCIEBIF"},
|
||||
{amd::smi::kDevErrCntHDP, amdSMI + "kDevErrCntHDP"},
|
||||
{amd::smi::kDevErrCntXGMIWAFL, amdSMI + "kDevErrCntXGMIWAFL"},
|
||||
{amd::smi::kDevErrCntFeatures, amdSMI + "kDevErrCntFeatures"},
|
||||
{amd::smi::kDevErrRASSchema, amdSMI + "kDevErrRASSchema"},
|
||||
{amd::smi::kDevErrTableVersion, amdSMI + "kDevErrTableVersion"},
|
||||
{amd::smi::kDevMemTotGTT, amdSMI + "kDevMemTotGTT"},
|
||||
{amd::smi::kDevMemTotVisVRAM, amdSMI + "kDevMemTotVisVRAM"},
|
||||
{amd::smi::kDevMemTotVRAM, amdSMI + "kDevMemTotVRAM"},
|
||||
{amd::smi::kDevMemUsedGTT, amdSMI + "kDevMemUsedGTT"},
|
||||
{amd::smi::kDevMemUsedVisVRAM, amdSMI + "kDevMemUsedVisVRAM"},
|
||||
{amd::smi::kDevMemUsedVRAM, amdSMI + "kDevMemUsedVRAM"},
|
||||
{amd::smi::kDevVramVendor, amdSMI + "kDevVramVendor"},
|
||||
{amd::smi::kDevPCIEReplayCount, amdSMI + "kDevPCIEReplayCount"},
|
||||
{amd::smi::kDevUniqueId, amdSMI + "kDevUniqueId"},
|
||||
{amd::smi::kDevDFCountersAvailable, amdSMI + "kDevDFCountersAvailable"},
|
||||
{amd::smi::kDevMemBusyPercent, amdSMI + "kDevMemBusyPercent"},
|
||||
{amd::smi::kDevXGMIError, amdSMI + "kDevXGMIError"},
|
||||
{amd::smi::kDevFwVersionAsd, amdSMI + "kDevFwVersionAsd"},
|
||||
{amd::smi::kDevFwVersionCe, amdSMI + "kDevFwVersionCe"},
|
||||
{amd::smi::kDevFwVersionDmcu, amdSMI + "kDevFwVersionDmcu"},
|
||||
{amd::smi::kDevFwVersionMc, amdSMI + "kDevFwVersionMc"},
|
||||
{amd::smi::kDevFwVersionMe, amdSMI + "kDevFwVersionMe"},
|
||||
{amd::smi::kDevFwVersionMec, amdSMI + "kDevFwVersionMec"},
|
||||
{amd::smi::kDevFwVersionMec2, amdSMI + "kDevFwVersionMec2"},
|
||||
{amd::smi::kDevFwVersionMes, amdSMI + "kDevFwVersionMes"},
|
||||
{amd::smi::kDevFwVersionMesKiq, amdSMI + "kDevFwVersionMesKiq"},
|
||||
{amd::smi::kDevFwVersionPfp, amdSMI + "kDevFwVersionPfp"},
|
||||
{amd::smi::kDevFwVersionRlc, amdSMI + "kDevFwVersionRlc"},
|
||||
{amd::smi::kDevFwVersionRlcSrlc, amdSMI + "kDevFwVersionRlcSrlc"},
|
||||
{amd::smi::kDevFwVersionRlcSrlg, amdSMI + "kDevFwVersionRlcSrlg"},
|
||||
{amd::smi::kDevFwVersionRlcSrls, amdSMI + "kDevFwVersionRlcSrls"},
|
||||
{amd::smi::kDevFwVersionSdma, amdSMI + "kDevFwVersionSdma"},
|
||||
{amd::smi::kDevFwVersionSdma2, amdSMI + "kDevFwVersionSdma2"},
|
||||
{amd::smi::kDevFwVersionSmc, amdSMI + "kDevFwVersionSmc"},
|
||||
{amd::smi::kDevFwVersionSos, amdSMI + "kDevFwVersionSos"},
|
||||
{amd::smi::kDevFwVersionTaRas, amdSMI + "kDevFwVersionTaRas"},
|
||||
{amd::smi::kDevFwVersionTaXgmi, amdSMI + "kDevFwVersionTaXgmi"},
|
||||
{amd::smi::kDevFwVersionUvd, amdSMI + "kDevFwVersionUvd"},
|
||||
{amd::smi::kDevFwVersionVce, amdSMI + "kDevFwVersionVce"},
|
||||
{amd::smi::kDevFwVersionVcn, amdSMI + "kDevFwVersionVcn"},
|
||||
{amd::smi::kDevSerialNumber, amdSMI + "kDevSerialNumber"},
|
||||
{amd::smi::kDevMemPageBad, amdSMI + "kDevMemPageBad"},
|
||||
{amd::smi::kDevNumaNode, amdSMI + "kDevNumaNode"},
|
||||
{amd::smi::kDevGpuMetrics, amdSMI + "kDevGpuMetrics"},
|
||||
{amd::smi::kDevPmMetrics, amdSMI + "kDevPmMetrics"},
|
||||
{amd::smi::kDevRegMetrics, amdSMI + "kDevRegMetrics"},
|
||||
{amd::smi::kDevGpuReset, amdSMI + "kDevGpuReset"},
|
||||
{amd::smi::kDevAvailableComputePartition, amdSMI +
|
||||
"kDevAvailableComputePartition"},
|
||||
{amd::smi::kDevComputePartition, amdSMI + "kDevComputePartition"},
|
||||
{amd::smi::kDevMemoryPartition, amdSMI + "kDevMemoryPartition"},
|
||||
{amd::smi::kDevPCieVendorID, amdSMI + "kDevPCieVendorID"},
|
||||
};
|
||||
|
||||
namespace amd {
|
||||
namespace smi {
|
||||
|
||||
@@ -647,7 +560,7 @@ std::string RocmSMI::getRSMIEnvVarInfo(void) {
|
||||
for (auto it=env_vars_.enum_overrides.begin();
|
||||
it != env_vars_.enum_overrides.end(); ++it) {
|
||||
DevInfoTypes type = static_cast<DevInfoTypes>(*it);
|
||||
ss << (std::to_string(*it) + " (" + devInfoTypesStrings.at(type) + ")");
|
||||
ss << (std::to_string(*it) + " (" + Device::devInfoTypesStrings.at(type) + ")");
|
||||
auto temp_it = it;
|
||||
if(++temp_it != env_vars_.enum_overrides.end()) {
|
||||
ss << ", ";
|
||||
|
||||
مرجع در شماره جدید
Block a user