The NUMA node information for PCI devices provided through sysfs is invalid for AMD Opteron(TM) Processor 62xx and 63xx on Red Hat Enterprise Linux 6, and VMs on some hypervisors.
Signed-off-by: nickcooper-zhangtonghao <n...@opencloud.tech> --- lib/librte_eal/linuxapp/eal/eal_pci.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 4350134..5dfdbe9 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -317,7 +317,13 @@ free(dev); return -1; } - dev->device.numa_node = tmp; + /* The NUMA node information for PCI devices provided through + * sysfs is invalid for AMD Opteron(TM) Processor 62xx and 63xx + * on Red Hat Enterprise Linux 6, and VMs on some hypervisors. + * In the upstream linux kernel, the numa_node is an integer, + * which data type is int, not unsigned long. + */ + dev->device.numa_node = (int)tmp > 0 ? (int)tmp : 0; } /* parse resources */ -- 1.8.3.1