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 8D45C5F28 for ; Fri, 2 Nov 2018 08:40:37 +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 AFF4B15BF; Fri, 2 Nov 2018 00:40:36 -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 308213F71E; Fri, 2 Nov 2018 00:40:36 -0700 (PDT) From: Phil Yang To: stable@dpdk.org Cc: bluca@debian.org Date: Fri, 2 Nov 2018 15:40:17 +0800 Message-Id: <1541144417-11169-3-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 3/3] app/testpmd: reserve NUMA node per device port and per ring 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:37 -0000 [ backported from upstream commit a569af2481cd3bd29e5c6d49f2d2f95586d750a8 ] If user explicitly requested memory to be allocated from a socket via `port-numa-config` and `rxring-numa-config`, and if that socket is valid, add that socket into socket_ids[] so that mempool allocated for that socket. Fixes: dbfb8ec ("app/testpmd: optimize mbuf pool allocation") Signed-off-by: Phil Yang Suggested-by: Yigit Ferruh Reviewed-by: Ferruh Yigit --- app/test-pmd/parameters.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 84e7a63..6fe1ee6 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -435,8 +435,11 @@ parse_portnuma_config(const char *q_arg) } socket_id = (uint8_t)int_fld[FLD_SOCKET]; if (new_socket_id(socket_id)) { - print_invalid_socket_id_error(); - return -1; + if (num_sockets >= RTE_MAX_NUMA_NODES) { + print_invalid_socket_id_error(); + return -1; + } + socket_ids[num_sockets++] = socket_id; } port_numa[port_id] = socket_id; } @@ -496,8 +499,11 @@ parse_ringnuma_config(const char *q_arg) } socket_id = (uint8_t)int_fld[FLD_SOCKET]; if (new_socket_id(socket_id)) { - print_invalid_socket_id_error(); - return -1; + if (num_sockets >= RTE_MAX_NUMA_NODES) { + print_invalid_socket_id_error(); + return -1; + } + socket_ids[num_sockets++] = socket_id; } ring_flag = (uint8_t)int_fld[FLD_FLAG]; if ((ring_flag < RX_RING_ONLY) || (ring_flag > RXTX_RING)) { -- 2.7.4