Add rsmi_topo_get_numa_affinity()
Given a device index, return the corresponding NUMA node for the device. Also, add NUMA node tests to Sys Info Read test. Change-Id: I0df4937470e6362e6737ccea568d4b3e5890c91a
Bu işleme şunda yer alıyor:
@@ -729,6 +729,22 @@ rsmi_dev_pci_id_get(uint32_t dv_ind, uint64_t *bdfid) {
|
||||
CATCH
|
||||
}
|
||||
|
||||
rsmi_status_t
|
||||
rsmi_topo_numa_affinity_get(uint32_t dv_ind, uint32_t *numa_node) {
|
||||
TRY
|
||||
rsmi_status_t ret;
|
||||
uint64_t val = 0;
|
||||
|
||||
CHK_SUPPORT_NAME_ONLY(numa_node)
|
||||
|
||||
DEVICE_MUTEX
|
||||
ret = get_dev_value_int(amd::smi::kDevNumaNode, dv_ind, &val);
|
||||
|
||||
*numa_node = static_cast<uint32_t>(val);
|
||||
return ret;
|
||||
CATCH
|
||||
}
|
||||
|
||||
static rsmi_status_t
|
||||
get_id(uint32_t dv_ind, amd::smi::DevInfoTypes typ, uint16_t *id) {
|
||||
TRY
|
||||
|
||||
@@ -108,6 +108,7 @@ static const char *kDevDFCountersAvailableFName = "df_cntr_avail";
|
||||
static const char *kDevMemBusyPercentFName = "mem_busy_percent";
|
||||
static const char *kDevXGMIErrorFName = "xgmi_error";
|
||||
static const char *kDevSerialNumberFName = "serial_number";
|
||||
static const char *kDevNumaNodeFName = "numa_node";
|
||||
|
||||
// Firmware version files
|
||||
static const char *kDevFwVersionAsdFName = "fw_version/asd_fw_version";
|
||||
@@ -266,6 +267,7 @@ static const std::map<DevInfoTypes, const char *> kDevAttribNameMap = {
|
||||
{kDevFwVersionVcn, kDevFwVersionVcnFName},
|
||||
{kDevSerialNumber, kDevSerialNumberFName},
|
||||
{kDevMemPageBad, kDevMemPageBadFName},
|
||||
{kDevNumaNode, kDevNumaNodeFName},
|
||||
};
|
||||
|
||||
static const std::map<rsmi_dev_perf_level, const char *> kDevPerfLvlMap = {
|
||||
@@ -373,6 +375,7 @@ static const std::map<const char *, dev_depends_t> kDevFuncDependsMap = {
|
||||
{"rsmi_dev_xgmi_error_status", {{kDevXGMIErrorFName}, {}}},
|
||||
{"rsmi_dev_xgmi_error_reset", {{kDevXGMIErrorFName}, {}}},
|
||||
{"rsmi_dev_memory_reserved_pages_get", {{kDevMemPageBadFName}, {}}},
|
||||
{"rsmi_topo_numa_affinity_get", {{kDevNumaNodeFName}, {}}},
|
||||
|
||||
// These functions with variants, but no sensors/units. (May or may not
|
||||
// have mandatory dependencies.)
|
||||
@@ -683,6 +686,7 @@ int Device::readDevInfo(DevInfoTypes type, uint64_t *val) {
|
||||
case kDevDFCountersAvailable:
|
||||
case kDevMemBusyPercent:
|
||||
case kDevXGMIError:
|
||||
case kDevNumaNode:
|
||||
ret = readDevInfoStr(type, &tempStr);
|
||||
RET_IF_NONZERO(ret);
|
||||
if (tempStr == "") {
|
||||
|
||||
Yeni konuda referans
Bir kullanıcı engelle