From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by dpdk.org (Postfix) with ESMTP id ACB4A5F28 for ; Fri, 2 Nov 2018 08:40:36 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E2EE715AD; Fri, 2 Nov 2018 00:40:35 -0700 (PDT) Received: from phil-VirtualBox.shanghai.arm.com (unknown [10.169.108.176]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 60D2A3F71E; Fri, 2 Nov 2018 00:40:35 -0700 (PDT) From: Phil Yang To: stable@dpdk.org Cc: bluca@debian.org Date: Fri, 2 Nov 2018 15:40:16 +0800 Message-Id: <1541144417-11169-2-git-send-email-phil.yang@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1541144417-11169-1-git-send-email-phil.yang@arm.com> References: <1541144417-11169-1-git-send-email-phil.yang@arm.com> Subject: [dpdk-stable] [PATCH 16.11 2/3] app/testpmd: fix physic port socket initialization X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Nov 2018 07:40:36 -0000 [ backported from upstream commit effdb8bbb018bd8a611b2ac86a15739f67ea7cbc ] Once the lcore list setting excluded the socket which physic device attached, it will cause failure. Meanwhile, it will disable Testpmd cross NUMA scenario. Fixes: dbfb8ec ("app/testpmd: optimize mbuf pool allocation") Signed-off-by: Phil Yang Reviewed-by: Gavin Hu Acked-by: Konstantin Ananyev --- app/test-pmd/testpmd.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 8984d0b..8ec8941 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -483,9 +483,21 @@ set_default_fwd_ports_config(void) portid_t pt_id; int i = 0; - RTE_ETH_FOREACH_DEV(pt_id) + RTE_ETH_FOREACH_DEV(pt_id) { fwd_ports_ids[i++] = pt_id; + /* Update sockets info according to the attached device */ + int socket_id = rte_eth_dev_socket_id(pt_id); + if (socket_id >= 0 && new_socket_id(pt_id)) { + if (num_sockets >= RTE_MAX_NUMA_NODES) { + rte_exit(EXIT_FAILURE, + "Total sockets greater than %u\n", + RTE_MAX_NUMA_NODES); + } + socket_ids[num_sockets++] = socket_id; + } + } + nb_cfg_ports = nb_ports; nb_fwd_ports = nb_ports; } -- 2.7.4