From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by dpdk.org (Postfix) with ESMTP id E9F312C3F for ; Tue, 9 May 2017 09:30:25 +0200 (CEST) X-QQ-mid: bizesmtp4t1494315019t8pzyh8ae Received: from local.opencloud.tech.localdomai (unknown [106.120.127.10]) by esmtp4.qq.com (ESMTP) with id ; Tue, 09 May 2017 15:30:13 +0800 (CST) X-QQ-SSF: 01100000002000F0FG80000A0000000 X-QQ-FEAT: /A5Igf99+LQ/tdrxAqq/GiZARM4TGFFqRXismHA7EMzPo9eNtumorURlD1S2V k8G7eli3e6avlvSl9UIexnW2Q+BEDNkUgAjrpmEQQoUhk6Baws3jZPqNcYZ8dtlBQ/ikMnI aQDojttV0/V9Q5teW3KZvFo5fhb1DaR7upWnw8bb4000Op8IYtnn38II3P8bd+uB00dfbBE h/LcoUBT3jZPVw5d7ng+l0XKU4forNrbsS0B9snamPuFrJvwn/Hn+NAM/EIr2G5BDvcXeIX eAWPvLXxAvNicA X-QQ-GoodBg: 0 From: Tonghao Zhang To: dev@dpdk.org Cc: stephen@networkplumber.org, Tonghao Zhang Date: Tue, 9 May 2017 00:30:02 -0700 Message-Id: <1494315002-41982-1-git-send-email-nic@opencloud.tech> X-Mailer: git-send-email 1.8.3.1 X-QQ-SENDSIZE: 520 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH v3] eal: Set numa node value for system which not support it. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 May 2017 07:30:26 -0000 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. It is good to see more checking for valid values. Signed-off-by: Tonghao Zhang --- lib/librte_eal/linuxapp/eal/eal_pci.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 595622b..95a051f 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -310,19 +310,15 @@ dev->max_vfs = (uint16_t)tmp; } - /* get numa node */ + /* get numa node, default to 0 if not present */ snprintf(filename, sizeof(filename), "%s/numa_node", dirname); - if (access(filename, R_OK) != 0) { - /* if no NUMA support, set default to 0 */ - dev->device.numa_node = 0; - } else { - if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); - return -1; - } + + if (eal_parse_sysfs_value(filename, &tmp) == 0 && + tmp < RTE_MAX_NUMA_NODES) dev->device.numa_node = tmp; - } + else + dev->device.numa_node = 0; rte_pci_device_name(addr, dev->name, sizeof(dev->name)); dev->device.name = dev->name; -- 1.8.3.1