From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <i.maximets@samsung.com>
Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com
 [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 92CC3A49
 for <stable@dpdk.org>; Fri, 21 Sep 2018 08:45:27 +0200 (CEST)
Received: from eucas1p1.samsung.com (unknown [182.198.249.206])
 by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id
 20180921064526euoutp02ad6f8af7820f69a70b03490140d2618b~WV1CHVOsq0583105831euoutp02h
 for <stable@dpdk.org>; Fri, 21 Sep 2018 06:45:26 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com
 20180921064526euoutp02ad6f8af7820f69a70b03490140d2618b~WV1CHVOsq0583105831euoutp02h
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
 s=mail20170921; t=1537512326;
 bh=KSZMv5l7nA17gUOD16O8vfuNXHBry7Hyj+p8qwhzWMY=;
 h=Subject:To:Cc:From:Date:In-Reply-To:References:From;
 b=mxfJ3/zBIDtiZ7e5KmJjXIKCZwlVxXMhaElkO9/y5t06ZyFFa7AMwOq/Ip1fXLZDl
 /z/DqW98wMnJDizXXM5p8HFN7sjKlVhZugWwHFvtFHftUinCh8VdP33QOoZ8a30gV2
 D18HUbG4QEKk0Kxa7sOWp4iNytJ+fiKGP8MPO6XY=
Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTP id
 20180921064525eucas1p240e173fb175e300f30964ab8d2067217~WV1BoF3XE1701917019eucas1p2J;
 Fri, 21 Sep 2018 06:45:25 +0000 (GMT)
Received: from eucas1p2.samsung.com ( [182.198.249.207]) by
 eusmges1new.samsung.com (EUCPMTA) with SMTP id 41.D2.04441.58394AB5; Fri, 21
 Sep 2018 07:45:25 +0100 (BST)
Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by
 eucas1p1.samsung.com (KnoxPortal) with ESMTPA id
 20180921064524eucas1p147ff66419605b9b141969e1a672196f9~WV1A0hUgX1031210312eucas1p1k;
 Fri, 21 Sep 2018 06:45:24 +0000 (GMT)
Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by
 eusmtrp1.samsung.com (KnoxPortal) with ESMTP id
 20180921064524eusmtrp17c5118c85775bd4aeb0e7a1144b397a1~WV1AjuEMv2694026940eusmtrp1m;
 Fri, 21 Sep 2018 06:45:24 +0000 (GMT)
X-AuditID: cbfec7f2-5c9ff70000001159-e5-5ba493854ab6
Received: from eusmtip2.samsung.com ( [203.254.199.222]) by
 eusmgms2.samsung.com (EUCPMTA) with SMTP id 24.BA.04128.48394AB5; Fri, 21
 Sep 2018 07:45:24 +0100 (BST)
Received: from [106.109.129.180] (unknown [106.109.129.180]) by
 eusmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20180921064524eusmtip20dfc8f4f581dbf4debcf8c564f5d330a~WV1AM3bF-2815928159eusmtip2j;
 Fri, 21 Sep 2018 06:45:24 +0000 (GMT)
To: Anatoly Burakov <anatoly.burakov@intel.com>, dev@dpdk.org
Cc: solal.pirelli@gmail.com, stable@dpdk.org
From: Ilya Maximets <i.maximets@samsung.com>
Date: Fri, 21 Sep 2018 09:47:19 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.9.1
MIME-Version: 1.0
In-Reply-To: <7e4178219213303b982e505ae4cb4387d9d3814a.1537447684.git.anatoly.burakov@intel.com>
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNKsWRmVeSWpSXmKPExsWy7djP87qtk5dEG9x9L2Lx6N5iZot3n7Yz
 WVxp/8lucWLqDBaLfx1/2B1YPX4tWMrqsXPWXXaPxXteMnn0bVnFGMASxWWTkpqTWZZapG+X
 wJVxrOE7W8EMgYrFH18yNzBO4O1i5OSQEDCRON91i62LkYtDSGAFo0Tb2dnsEM4XRolnfRuh
 nM+MEk/uf2PsYuQAa3ly0xMivpxR4sjed1BFHxklpr1oAisSFnCQOHPdAmSFiICtxKf5d5hA
 bGYBHYkVz5cxgthsQPap1UfAbBYBVYn9HV9YQWxRgQiJIw8WgsV5BQQlTs58wgJicwokSLSv
 f8cKMUdcounLSihbXmL72znMIDdICCxil+h+epMForlM4s+9v0wQf7pInDjwgQXCFpZ4dXwL
 O4QtI3F6cg9UvF7ifstLRohBHYwS0w/9g2q2l9jy+hw7yGPMApoS63fpQ4QdJW5sOMQOCRQ+
 iRtvBSHu4ZOYtG06M0SYV6KjTQiiWkXi98HlzBC2lMTNd5/ZJzAqzULy5Swkn81C8tkshL0L
 GFlWMYqnlhbnpqcWG+allusVJ+YWl+al6yXn525iBCaZ0/+Of9rB+PVS0iFGAQ5GJR5eg8WL
 o4VYE8uKK3MPMUpwMCuJ8O7rWhItxJuSWFmVWpQfX1Sak1p8iFGag0VJnJdPKy1aSCA9sSQ1
 OzW1ILUIJsvEwSnVwNj9wL3mzsvDM65uu7v8oYfzuoMG5cunGbbeevrkhFmxk137knKOryY1
 wsxWh7WuXc9SeF+7uL2J8c/t2lONslLHlALWO027q6n8+fyZlap+nx0n/QyZUWcfHnTqwP1L
 QYv5xE+JME1bXpVWYRY/9cbSRVNnH/v5UHLtQrW91T4Gf+bJMNyMdn2txFKckWioxVxUnAgA
 OC1v6C4DAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRmVeSWpSXmKPExsVy+t/xe7otk5dEGxzaLGPx6N5iZot3n7Yz
 WVxp/8lucWLqDBaLfx1/2B1YPX4tWMrqsXPWXXaPxXteMnn0bVnFGMASpWdTlF9akqqQkV9c
 YqsUbWhhpGdoaaFnZGKpZ2hsHmtlZKqkb2eTkpqTWZZapG+XoJdxrOE7W8EMgYrFH18yNzBO
 4O1i5OCQEDCReHLTs4uRk0NIYCmjRO+WQBBbQkBK4sevC6wQtrDEn2tdbF2MXEA17xklpp56
 wgbSKyzgIHHmugVIjYiArcSn+XeYQGxmAR2JFc+XMULUdzJJbNt4nh0kwQaUOLX6CCOIzStg
 JzFnagMLiM0ioCqxv+ML2DJRgQiJ1ctfsELUCEqcnPkErIZTIEGiff07VogF6hJ/5l1ihrDF
 JZq+rISKy0tsfzuHeQKj0Cwk7bOQtMxC0jILScsCRpZVjCKppcW56bnFRnrFibnFpXnpesn5
 uZsYgVG17djPLTsYu94FH2IU4GBU4uE1WLw4Wog1say4MvcQowQHs5II776uJdFCvCmJlVWp
 RfnxRaU5qcWHGE2BnpvILCWanA+M+LySeENTQ3MLS0NzY3NjMwslcd7zBpVRQgLpiSWp2amp
 BalFMH1MHJxSDYylyzS6BVKOTi1rmO9xwehIUZ/pxIu1Dg5nvzh5L63ZpP9NhXXzylX6d0Q3
 9T3nPKEgcIpp1wzhK16eE1/rTXupYrQ+zW4uT/NlJeZ91ixdW/Ye3Dpl11PjFX+eZQtrxMmK
 MGtMlTu61uZjIbPyipqk9cs/unqpdnWE1q9VPKsYesdWKuTbEi0lluKMREMt5qLiRACTVgz+
 wAIAAA==
Message-Id: <20180921064524eucas1p147ff66419605b9b141969e1a672196f9~WV1A0hUgX1031210312eucas1p1k@eucas1p1.samsung.com>
X-CMS-MailID: 20180921064524eucas1p147ff66419605b9b141969e1a672196f9
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20180920125054epcas2p26c547d287926ed85abad1fe3fbb4ec59
X-EPHeader: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20180920125054epcas2p26c547d287926ed85abad1fe3fbb4ec59
References: <2624b855f3454691212cdb244f04926631c391a2.1535544966.git.anatoly.burakov@intel.com>
 <CGME20180920125054epcas2p26c547d287926ed85abad1fe3fbb4ec59@epcas2p2.samsung.com>
 <7e4178219213303b982e505ae4cb4387d9d3814a.1537447684.git.anatoly.burakov@intel.com>
Subject: Re: [dpdk-stable] [PATCH v2] mem: fix undefined behavior in NUMA
	code
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>
X-List-Received-Date: Fri, 21 Sep 2018 06:45:27 -0000

On 20.09.2018 15:50, Anatoly Burakov wrote:
> When NUMA-aware hugepages config option is set, we rely on
> libnuma to tell the kernel to allocate hugepages on a specific
> NUMA node. However, we allocate node mask before we check if
> NUMA is available in the first place, which, according to
> the manpage [1], causes undefined behaviour.
> 
> Fix by only using nodemask when we have NUMA available.
> 
> [1] https://linux.die.net/man/3/numa_alloc_onnode
> 
> Bugzilla ID: 20
> 
> Fixes: 1b72605d2416 ("mem: balanced allocation of hugepages")
> Cc: i.maximets@samsung.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
>  lib/librte_eal/linuxapp/eal/eal_memory.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
> index dbf19499e..1a2a84a65 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> @@ -263,7 +263,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
>  	int node_id = -1;
>  	int essential_prev = 0;
>  	int oldpolicy;
> -	struct bitmask *oldmask = numa_allocate_nodemask();
> +	struct bitmask *oldmask = NULL;
>  	bool have_numa = true;
>  	unsigned long maxnode = 0;
>  
> @@ -275,6 +275,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
>  
>  	if (have_numa) {
>  		RTE_LOG(DEBUG, EAL, "Trying to obtain current memory policy.\n");
> +		oldmask = numa_allocate_nodemask();
>  		if (get_mempolicy(&oldpolicy, oldmask->maskp,
>  				  oldmask->size + 1, 0, 0) < 0) {
>  			RTE_LOG(ERR, EAL,
> @@ -401,8 +402,8 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
>  				strerror(errno));
>  			numa_set_localalloc();
>  		}
> +		numa_free_cpumask(oldmask);
>  	}
> -	numa_free_cpumask(oldmask);

There will be 'oldmask' leak in case no 'socket-mem' requested.

>  #endif
>  	return i;
>  }
>