Numa affinity shows large number
Change the affinity from unsigned int to integer to represent -1.
Change-Id: I82dc6f476b45fa4ec03a3c686fe8e6e2b7761b56
[ROCm/amdsmi commit: 471fbfddc1]
Этот коммит содержится в:
коммит произвёл
Shuzhou Liu
родитель
d8480a22d9
Коммит
914dee641d
@@ -1534,7 +1534,7 @@ rsmi_status_t rsmi_dev_pci_id_get(uint32_t dv_ind, uint64_t *bdfid);
|
||||
* support this function with the given arguments
|
||||
* @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid
|
||||
*/
|
||||
rsmi_status_t rsmi_topo_numa_affinity_get(uint32_t dv_ind, uint32_t *numa_node);
|
||||
rsmi_status_t rsmi_topo_numa_affinity_get(uint32_t dv_ind, int32_t *numa_node);
|
||||
|
||||
/**
|
||||
* @brief Get PCIe traffic information
|
||||
|
||||
@@ -3077,7 +3077,7 @@ def showNumaTopology(deviceList):
|
||||
@param deviceList: List of DRM devices (can be a single-item list)
|
||||
"""
|
||||
printLogSpacer(' Numa Nodes ')
|
||||
numa_numbers = c_uint32()
|
||||
numa_numbers = c_int32()
|
||||
for device in deviceList:
|
||||
ret = rocmsmi.rsmi_topo_get_numa_node_number(device, byref(numa_numbers))
|
||||
if rsmi_ret_ok(ret, device, 'get_numa_node_number'):
|
||||
|
||||
@@ -756,7 +756,7 @@ rsmi_dev_pci_id_get(uint32_t dv_ind, uint64_t *bdfid) {
|
||||
}
|
||||
|
||||
rsmi_status_t
|
||||
rsmi_topo_numa_affinity_get(uint32_t dv_ind, uint32_t *numa_node) {
|
||||
rsmi_topo_numa_affinity_get(uint32_t dv_ind, int32_t *numa_node) {
|
||||
TRY
|
||||
rsmi_status_t ret;
|
||||
uint64_t val = 0;
|
||||
@@ -764,9 +764,10 @@ rsmi_topo_numa_affinity_get(uint32_t dv_ind, uint32_t *numa_node) {
|
||||
CHK_SUPPORT_NAME_ONLY(numa_node)
|
||||
|
||||
DEVICE_MUTEX
|
||||
ret = get_dev_value_int(amd::smi::kDevNumaNode, dv_ind, &val);
|
||||
std::string str_val;
|
||||
ret = get_dev_value_str(amd::smi::kDevNumaNode, dv_ind, &str_val);
|
||||
*numa_node = std::stol(str_val, 0);
|
||||
|
||||
*numa_node = static_cast<uint32_t>(val);
|
||||
return ret;
|
||||
CATCH
|
||||
}
|
||||
|
||||
@@ -928,7 +928,6 @@ 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 == "") {
|
||||
@@ -1046,6 +1045,7 @@ int Device::readDevInfo(DevInfoTypes type, std::string *val) {
|
||||
case kDevAvailableComputePartition:
|
||||
case kDevComputePartition:
|
||||
case kDevMemoryPartition:
|
||||
case kDevNumaNode:
|
||||
return readDevInfoStr(type, val);
|
||||
break;
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ void TestSysInfoRead::Run(void) {
|
||||
rsmi_status_t err;
|
||||
uint64_t val_ui64;
|
||||
uint32_t val_ui32;
|
||||
int32_t val_i32;
|
||||
char buffer[80];
|
||||
rsmi_version_t ver = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, nullptr};
|
||||
|
||||
@@ -136,11 +137,11 @@ void TestSysInfoRead::Run(void) {
|
||||
err = rsmi_dev_pci_id_get(i, nullptr);
|
||||
ASSERT_EQ(err, RSMI_STATUS_INVALID_ARGS);
|
||||
|
||||
err = rsmi_topo_numa_affinity_get(i, &val_ui32);
|
||||
err = rsmi_topo_numa_affinity_get(i, &val_i32);
|
||||
CHK_ERR_ASRT(err)
|
||||
IF_VERB(STANDARD) {
|
||||
std::cout << "\t**NUMA NODE: 0x" << std::hex << val_ui32;
|
||||
std::cout << " (" << std::dec << val_ui32 << ")" << std::endl;
|
||||
std::cout << "\t**NUMA NODE: 0x" << std::hex << val_i32;
|
||||
std::cout << " (" << std::dec << val_i32 << ")" << std::endl;
|
||||
}
|
||||
// Verify api support checking functionality is working
|
||||
err = rsmi_topo_numa_affinity_get(i, nullptr);
|
||||
|
||||
Ссылка в новой задаче
Block a user