From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stable-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 918FFA05D3
	for <public@inbox.dpdk.org>; Thu, 23 May 2019 11:52:35 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 45BD94C99;
	Thu, 23 May 2019 11:52:35 +0200 (CEST)
Received: from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com
 [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id C09E24C99;
 Thu, 23 May 2019 11:52:33 +0200 (CEST)
Received: from bretzel.dev.6wind.com (unknown [10.16.0.19])
 by proxy.6wind.com (Postfix) with ESMTPS id A23E82B9C68;
 Thu, 23 May 2019 11:52:33 +0200 (CEST)
Received: from dichtel by bretzel.dev.6wind.com with local (Exim 4.89)
 (envelope-from <dichtel@bretzel.dev.6wind.com>)
 id 1hTkOn-0000J2-AQ; Thu, 23 May 2019 11:52:33 +0200
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
To: dev@dpdk.org
Cc: Anatoly Burakov <anatoly.burakov@intel.com>,
 Nicolas Dichtel <nicolas.dichtel@6wind.com>, stable@dpdk.org,
 Olivier Matz <olivier.matz@6wind.com>,
 Didier Pallard <didier.pallard@6wind.com>
Date: Thu, 23 May 2019 11:52:31 +0200
Message-Id: <20190523095231.1091-1-nicolas.dichtel@6wind.com>
X-Mailer: git-send-email 2.21.0
In-Reply-To: <CAJFAV8xFNDWZ_q=ecu8u5KqApeW04rZuOi5ZG7yNKYGs7sKaBQ@mail.gmail.com>
References: <CAJFAV8xFNDWZ_q=ecu8u5KqApeW04rZuOi5ZG7yNKYGs7sKaBQ@mail.gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-stable] [PATCH v2] mem: ease init in a docker container
X-BeenThere: stable@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches for DPDK stable branches <stable.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/stable>,
 <mailto:stable-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/stable/>
List-Post: <mailto:stable@dpdk.org>
List-Help: <mailto:stable-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/stable>,
 <mailto:stable-request@dpdk.org?subject=subscribe>
Errors-To: stable-bounces@dpdk.org
Sender: "stable" <stable-bounces@dpdk.org>

move_pages() is only used to get the numa node id, but this function
is not allowed by default in docker (it needs CAP_SYS_NICE and an update of
the seccomp profile).
get_mempolicy() also requires CAP_SYS_NICE but doesn't need any change in
the default seccomp profile.

Note that the returned value of move_pages() was not checked, thus some
errors could be hidden (if the requested id was 0).

Cc: stable@dpdk.org
Fixes: 582bed1e1d1d ("mem: support mapping hugepages at runtime")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---

v2: add fixes tag + cc stable
    fix title prefix

 lib/librte_eal/linux/eal/eal_memalloc.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/linux/eal/eal_memalloc.c b/lib/librte_eal/linux/eal/eal_memalloc.c
index 1e9ebb86dd1b..438faa0ab168 100644
--- a/lib/librte_eal/linux/eal/eal_memalloc.c
+++ b/lib/librte_eal/linux/eal/eal_memalloc.c
@@ -600,9 +600,13 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id,
 	}
 
 #ifdef RTE_EAL_NUMA_AWARE_HUGEPAGES
-	move_pages(getpid(), 1, &addr, NULL, &cur_socket_id, 0);
-
-	if (cur_socket_id != socket_id) {
+	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);
-- 
2.21.0