From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 54E1AA04B1 for ; Thu, 5 Nov 2020 13:42:29 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 26603C802; Thu, 5 Nov 2020 13:42:28 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by dpdk.org (Postfix) with ESMTP id 3685DC802 for ; Thu, 5 Nov 2020 13:42:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604580144; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wign0UME9YduMQQJTzGzr5G22XkkmnRGdInt5Y20t/g=; b=e6IqZwaw46KT/TGowO9+Xl17Uc0pPRB/BHRWCFsoYcgN5208ZWQsLmHj93XnaQAWZFdc0E E1Iy7h8YtRVJ1QZFgHVP8GJTkRWnmQ0ChF9W252lvCcJmUwodaGYS1AAYuAnU/IF1zHnNO B9hVqNGGr1ps3nzu2hzL+1Bnvw/3V3g= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-419-53D8SxtBPf2IO9dmsVe-lA-1; Thu, 05 Nov 2020 07:42:19 -0500 X-MC-Unique: 53D8SxtBPf2IO9dmsVe-lA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AC829107464B; Thu, 5 Nov 2020 12:42:18 +0000 (UTC) Received: from rh.redhat.com (ovpn-113-249.ams2.redhat.com [10.36.113.249]) by smtp.corp.redhat.com (Postfix) with ESMTP id 595535C5DE; Thu, 5 Nov 2020 12:42:17 +0000 (UTC) From: Kevin Traynor To: Nick Connolly Cc: Nicolas Dichtel , Anatoly Burakov , dpdk stable Date: Thu, 5 Nov 2020 12:40:07 +0000 Message-Id: <20201105124015.306404-60-ktraynor@redhat.com> In-Reply-To: <20201105124015.306404-1-ktraynor@redhat.com> References: <20201105124015.306404-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Subject: [dpdk-stable] patch 'mem: fix allocation failure on non-NUMA kernel' has been queued to LTS release 18.11.11 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: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to LTS release 18.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/10/20. 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/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/22e149b2dd88359e1543ae1581d13cabe4e47889 Thanks. Kevin. --- >From 22e149b2dd88359e1543ae1581d13cabe4e47889 Mon Sep 17 00:00:00 2001 From: Nick Connolly Date: Mon, 12 Oct 2020 20:28:03 +0100 Subject: [PATCH] mem: fix allocation failure on non-NUMA kernel [ upstream commit 9d42642e866ea100b190ad8de4c8b27d1b310a13 ] Running dpdk-helloworld on Linux with lib numa present, but no kernel support for NUMA (CONFIG_NUMA=n) causes rte_service_init() to fail with EAL: error allocating rte services array. alloc_seg() calls get_mempolicy to verify that the allocation has happened on the correct socket, but receives ENOSYS from the kernel and fails the allocation. The allocated socket should only be verified if check_numa() is true. Fixes: 2a96c88be83e ("mem: ease init in a docker container") Signed-off-by: Nick Connolly Reviewed-by: Nicolas Dichtel Acked-by: Anatoly Burakov --- lib/librte_eal/linuxapp/eal/eal_memalloc.c | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c index dea2b5ec93..1a86dfdfb9 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c +++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c @@ -747,15 +747,23 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id, #ifdef RTE_EAL_NUMA_AWARE_HUGEPAGES - ret = get_mempolicy(&cur_socket_id, NULL, 0, addr, - MPOL_F_NODE | MPOL_F_ADDR); - if (ret < 0) { - RTE_LOG(DEBUG, EAL, "%s(): get_mempolicy: %s\n", - __func__, strerror(errno)); - goto mapped; - } else if (cur_socket_id != socket_id) { - RTE_LOG(DEBUG, EAL, - "%s(): allocation happened on wrong socket (wanted %d, got %d)\n", - __func__, socket_id, cur_socket_id); - goto mapped; + /* + * If the kernel has been built without NUMA support, get_mempolicy() + * will return an error. If check_numa() returns false, memory + * allocation is not NUMA aware and the socket_id should not be + * checked. + */ + if (check_numa()) { + ret = get_mempolicy(&cur_socket_id, NULL, 0, addr, + MPOL_F_NODE | MPOL_F_ADDR); + if (ret < 0) { + RTE_LOG(DEBUG, EAL, "%s(): get_mempolicy: %s\n", + __func__, strerror(errno)); + goto mapped; + } else if (cur_socket_id != socket_id) { + RTE_LOG(DEBUG, EAL, + "%s(): allocation happened on wrong socket (wanted %d, got %d)\n", + __func__, socket_id, cur_socket_id); + goto mapped; + } } #else -- 2.26.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-11-05 12:38:55.614507939 +0000 +++ 0060-mem-fix-allocation-failure-on-non-NUMA-kernel.patch 2020-11-05 12:38:54.259896034 +0000 @@ -1 +1 @@ -From 9d42642e866ea100b190ad8de4c8b27d1b310a13 Mon Sep 17 00:00:00 2001 +From 22e149b2dd88359e1543ae1581d13cabe4e47889 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 9d42642e866ea100b190ad8de4c8b27d1b310a13 ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ - lib/librte_eal/linux/eal_memalloc.c | 30 ++++++++++++++++++----------- + lib/librte_eal/linuxapp/eal/eal_memalloc.c | 30 ++++++++++++++-------- @@ -26,5 +27,5 @@ -diff --git a/lib/librte_eal/linux/eal_memalloc.c b/lib/librte_eal/linux/eal_memalloc.c -index 40a5c4aa1d..6dc1b2baec 100644 ---- a/lib/librte_eal/linux/eal_memalloc.c -+++ b/lib/librte_eal/linux/eal_memalloc.c -@@ -626,15 +626,23 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id, +diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c +index dea2b5ec93..1a86dfdfb9 100644 +--- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c ++++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c +@@ -747,15 +747,23 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id,