From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7391C46478 for ; Tue, 25 Mar 2025 12:24:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3B42D4027C; Tue, 25 Mar 2025 12:24:43 +0100 (CET) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mails.dpdk.org (Postfix) with ESMTP id D7B024027C for ; Tue, 25 Mar 2025 12:24:42 +0100 (CET) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3912d2c89ecso5097191f8f.2 for ; Tue, 25 Mar 2025 04:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742901882; x=1743506682; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D3TET6gKu8C1e5f72QD47EXJdoCjr2Bhw3GUUSqVy2U=; b=bwtzjAazf6bNB4nUKW/Pd8Ps4Pv+qm7y1+bTGzCS3zltgE5r+xMBKOXIlusb9842FW yaoy1dpY0wx8phV+2naXbM4sE4qnXqgLNk6y2xwUDlCRUUhtUYoE4qLviWowIdukm+Zi iBu4G9aGfuQyOVfGV5Yrh0kIiel5vsdUsIU61TWvHy4vDrVEhNLlJ1J3iUdeuvksNNPu ida23zZxs5hg85QpN4vsq4sJgYh00Cs4T220ksennLsYPp6fj10sLCBfVAWTBhyDzQ7f /EELrOtxJYElkC+F/2mW8OO9699hxBbTBmrBC1L23L8h4PlVgLQNCSFR1R5E2pEUIH95 Op6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742901882; x=1743506682; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D3TET6gKu8C1e5f72QD47EXJdoCjr2Bhw3GUUSqVy2U=; b=CwrOVlHxyUK496Uru4iDrx52LF4aTxRaAu+653TfdkIR1o4QOkj5q+bU5k4JOX5yZO EK2XEESSsBhhz/0ygQYTQuB7wgu+TKJkADtbIDWo2TVu9uGRgJ33ZCoRu9YXsgkaVn7F mcIsz7ZSKwp5ru70JcVo25cvwZYDCrMeDI+xN8NHAebg4rAWyaBWd8ASgQ+lv+rMh25D q2iGbGg0JHQLMSe5JWLPvo1hIyGo8jTUx93ZnkM7z0kpmcMjGSpTKMSQPDNJqSuI6WVv u7RGENPrqElZ7OTVOKAaG68IeUaqaQqrRBoFXchvZJYokWsWbX4jm1DYSx7dXsMymc4v JC4Q== X-Gm-Message-State: AOJu0YwPLVNCgrYahucnPcXeUPFgDCMerahuRVHzJvKkal4wsolDZNzH JmK9jFB+QDuZZfKUdWLdNPnEOuZK69+OJnK7drWkKGpa84K0Mq1v X-Gm-Gg: ASbGncuiZ4LiIASBBxeF+rzP9d5vNQI6oEDiPfYM94U18EUYu5fy8eovZCh3+S5kkFx RW1pbpEh7VZjPtAoWobZQhiQeSlpD5aFOoQ0EB5Xp346pVS1sW94H7hUBFlIV0yYNkZLrzrYiPm 5mSotRONRofHEd+uG+QtWuJZEYQa/lFf/4wmnTOwz4nOLpaAQYU4NyYE3EQevcowHrSYgM7I0sn vAlGX++C8z+uxztWqHvV+QDLkubveIBQs0WAqd8oCctP4zTOmg3LlCjNiXM3N/6Mi7RCZB2x+N3 uujD1PiQZAAbgbkSQlbOgs1eVeFssUifUoNUhCdu4dmlhKpCXTQ= X-Google-Smtp-Source: AGHT+IEkPxURJLJcfg5ym0wCcKtA6aPVMHwReF+xmg932U8fsiutJnM/u4UR7KrhgJLz2RArvVapbw== X-Received: by 2002:a5d:59a9:0:b0:391:2dea:c9a5 with SMTP id ffacd0b85a97d-3997f908b69mr17439928f8f.20.1742901882126; Tue, 25 Mar 2025 04:24:42 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:d4b5:1ecf:2900:53c7]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-43d4fd27b59sm147476785e9.23.2025.03.25.04.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 04:24:41 -0700 (PDT) From: luca.boccassi@gmail.com To: Bruce Richardson Cc: dpdk stable Subject: patch 'eal: fix undetected NUMA nodes' has been queued to stable release 22.11.8 Date: Tue, 25 Mar 2025 11:24:11 +0000 Message-ID: <20250325112437.1138505-1-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250319142142.439602-11-luca.boccassi@gmail.com> References: <20250319142142.439602-11-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 22.11.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/27/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/e4081bc8044358481867c5860933aeb5d7aa2d8c Thanks. Luca Boccassi --- >From e4081bc8044358481867c5860933aeb5d7aa2d8c Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 5 Mar 2025 16:24:58 +0000 Subject: [PATCH] eal: fix undetected NUMA nodes [ upstream commit ef41b96461703c766e4a39ecf4bf7cb731d9617d ] In cases where the number of cores on a given socket is greater than RTE_MAX_LCORES, then EAL will be unaware of all the sockets/numa nodes on a system. Fix this limitation by having the EAL probe the NUMA node for cores it isn't going to use, and recording that for completeness. This is necessary as memory is tracked per node, and with the --lcores parameters our app lcores may be on different sockets than the lcore ids may imply. For example, lcore 0 is on socket zero, but if app is run with --lcores=0@64, then DPDK lcore 0 may be on socket one, so DPDK needs to be aware of that socket. Fixes: 952b20777255 ("eal: provide API for querying valid socket ids") Signed-off-by: Bruce Richardson --- lib/eal/common/eal_common_lcore.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/eal/common/eal_common_lcore.c b/lib/eal/common/eal_common_lcore.c index 06c594b022..787dbaff36 100644 --- a/lib/eal/common/eal_common_lcore.c +++ b/lib/eal/common/eal_common_lcore.c @@ -140,7 +140,11 @@ rte_eal_cpu_init(void) unsigned lcore_id; unsigned count = 0; unsigned int socket_id, prev_socket_id; - int lcore_to_socket_id[RTE_MAX_LCORE]; +#if CPU_SETSIZE > RTE_MAX_LCORE + int lcore_to_socket_id[CPU_SETSIZE] = {0}; +#else + int lcore_to_socket_id[RTE_MAX_LCORE] = {0}; +#endif /* * Parse the maximum set of logical cores, detect the subset of running @@ -179,9 +183,11 @@ rte_eal_cpu_init(void) for (; lcore_id < CPU_SETSIZE; lcore_id++) { if (eal_cpu_detected(lcore_id) == 0) continue; + socket_id = eal_cpu_socket_id(lcore_id); + lcore_to_socket_id[lcore_id] = socket_id; RTE_LOG(DEBUG, EAL, "Skipped lcore %u as core %u on socket %u\n", lcore_id, eal_cpu_core_id(lcore_id), - eal_cpu_socket_id(lcore_id)); + socket_id); } /* Set the count of enabled logical cores of the EAL configuration */ @@ -197,12 +203,13 @@ rte_eal_cpu_init(void) prev_socket_id = -1; config->numa_node_count = 0; - for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) { + for (lcore_id = 0; lcore_id < RTE_DIM(lcore_to_socket_id); lcore_id++) { socket_id = lcore_to_socket_id[lcore_id]; if (socket_id != prev_socket_id) - config->numa_nodes[config->numa_node_count++] = - socket_id; + config->numa_nodes[config->numa_node_count++] = socket_id; prev_socket_id = socket_id; + if (config->numa_node_count >= RTE_MAX_NUMA_NODES) + break; } RTE_LOG(INFO, EAL, "Detected NUMA nodes: %u\n", config->numa_node_count); -- 2.47.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-03-25 11:23:58.243823149 +0000 +++ 0001-eal-fix-undetected-NUMA-nodes.patch 2025-03-25 11:23:58.213308917 +0000 @@ -1 +1 @@ -From ef41b96461703c766e4a39ecf4bf7cb731d9617d Mon Sep 17 00:00:00 2001 +From e4081bc8044358481867c5860933aeb5d7aa2d8c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ef41b96461703c766e4a39ecf4bf7cb731d9617d ] + @@ -18 +19,0 @@ -Cc: stable@dpdk.org @@ -26 +27 @@ -index 2ff9252c52..820a6534b1 100644 +index 06c594b022..787dbaff36 100644 @@ -29 +30 @@ -@@ -144,7 +144,11 @@ rte_eal_cpu_init(void) +@@ -140,7 +140,11 @@ rte_eal_cpu_init(void) @@ -42 +43 @@ -@@ -183,9 +187,11 @@ rte_eal_cpu_init(void) +@@ -179,9 +183,11 @@ rte_eal_cpu_init(void) @@ -48 +49 @@ - EAL_LOG(DEBUG, "Skipped lcore %u as core %u on socket %u", + RTE_LOG(DEBUG, EAL, "Skipped lcore %u as core %u on socket %u\n", @@ -55 +56 @@ -@@ -201,12 +207,13 @@ rte_eal_cpu_init(void) +@@ -197,12 +203,13 @@ rte_eal_cpu_init(void) @@ -70 +71 @@ - EAL_LOG(INFO, "Detected NUMA nodes: %u", config->numa_node_count); + RTE_LOG(INFO, EAL, "Detected NUMA nodes: %u\n", config->numa_node_count);