[dpdk-dev,1/5] NUMA: Set numa node value for system which not support NUMA.

Message ID 1483612983-3545-1-git-send-email-nic@opencloud.tech (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel compilation success Compilation OK

Commit Message

nickcooper-zhangtonghao Jan. 5, 2017, 10:42 a.m. UTC
  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 <nic@opencloud.tech>
---
 lib/librte_eal/linuxapp/eal/eal_pci.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
  

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c
index 4350134..3ffac23 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 */