From patchwork Thu May 11 01:56:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: nickcooper-zhangtonghao X-Patchwork-Id: 24212 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 3EE372952; Thu, 11 May 2017 03:56:53 +0200 (CEST) Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by dpdk.org (Postfix) with ESMTP id 2B8CF14EC for ; Thu, 11 May 2017 03:56:50 +0200 (CEST) X-QQ-mid: bizesmtp1t1494467805tpl9ux2a4 Received: from local.opencloud.tech.localdomai (unknown [106.120.127.10]) by esmtp4.qq.com (ESMTP) with id ; Thu, 11 May 2017 09:56:39 +0800 (CST) X-QQ-SSF: 01100000002000F0FG80B00A0000000 X-QQ-FEAT: lAMFKCBSPHs8TO5JtEIZWYUCXgh4KnK1ToNQpB/bA4U5SSYcS2LWMFZRuoc0S h1G/J5cuRfphs1Jbzlzxcomw8uWcumBCwYOX/PhiK5kmMcrlQuFw2YA3xcZ1VHd/MKPk0Ig XpWT+SEnPnsYdPufIIo0PNaqo3DOBLFJjgsXFqtVcXck/VcNLBMyd1ADe34BkOWWSo5luBM GUj4QPbJWRqrgbdIaiUEFiAnMaAj+0zDe3oBnNZT5nXL5kZbvQcT8A3NrKHHKKrHSi4GUd/ XrU/w1ZTJC6eri X-QQ-GoodBg: 0 From: Tonghao Zhang To: dev@dpdk.org Cc: Tonghao Zhang Date: Wed, 10 May 2017 18:56:33 -0700 Message-Id: <1494467793-19887-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 v4] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Sergio Gonzalez Monroy --- lib/librte_eal/linuxapp/eal/eal_pci.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 595622b..c817b4c 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -310,18 +310,18 @@ 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 { + RTE_LOG(WARNING, EAL, + "numa_node is invalid or not present. " + "Set it 0 as default\n"); + dev->device.numa_node = 0; } rte_pci_device_name(addr, dev->name, sizeof(dev->name));