From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <sergio.gonzalez.monroy@intel.com>
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by dpdk.org (Postfix) with ESMTP id 3BCBC2C6E
 for <dev@dpdk.org>; Thu, 13 Apr 2017 10:14:21 +0200 (CEST)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 13 Apr 2017 01:14:20 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.37,194,1488873600"; d="scan'208";a="1155257075"
Received: from smonroyx-mobl.ger.corp.intel.com (HELO [10.237.221.23])
 ([10.237.221.23])
 by fmsmga002.fm.intel.com with ESMTP; 13 Apr 2017 01:14:18 -0700
To: Chao Zhu <chaozhu@linux.vnet.ibm.com>, dev@dpdk.org
References: <1491473170-25160-1-git-send-email-chaozhu@linux.vnet.ibm.com>
 <1491473170-25160-2-git-send-email-chaozhu@linux.vnet.ibm.com>
Cc: Gowrishankar <gowrishankar.m@linux.vnet.ibm.com>, david.marchand@6wind.com
From: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Message-ID: <a2bbe145-22a3-c08b-a523-40e408a23442@intel.com>
Date: Thu, 13 Apr 2017 09:14:18 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
In-Reply-To: <1491473170-25160-2-git-send-email-chaozhu@linux.vnet.ibm.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH 1/2] eal/ppc: fix mmap for memory
	initialization
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Apr 2017 08:14:22 -0000

On 06/04/2017 11:06, Chao Zhu wrote:
> On IBM POWER platform, when mapping /dev/zero file to hugepage memory
> space, mmap will not respect the requested address hint. This will cause
> the memory initilization for the second process fails. This patch adds
> the required mmap flags to make it work. Beside this, users need to set
> the nr_overcommit_hugepages to expand the VA range. When
> doing the initilization, users need to set both nr_hugepages and
> nr_overcommit_hugepages to the same value, like 64, 128, etc.
>
> Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> ---
>   lib/librte_eal/linuxapp/eal/eal_memory.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
> index a956bb2..e06186b 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> @@ -313,7 +313,11 @@ int rte_xen_dom0_supported(void)
>   	}
>   	do {
>   		addr = mmap(addr,
> +#ifndef RTE_ARCH_PPC_64
>   				(*size) + hugepage_sz, PROT_READ, MAP_PRIVATE, fd, 0);
> +#else
> +                (*size) + hugepage_sz, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, fd, 0);
> +#endif
>   		if (addr == MAP_FAILED)
>   			*size -= hugepage_sz;
>   	} while (addr == MAP_FAILED && *size > 0);
> @@ -1330,7 +1334,11 @@ static int huge_wrap_sigsetjmp(void)
>   		 * use mmap to get identical addresses as the primary process.
>   		 */
>   		base_addr = mmap(mcfg->memseg[s].addr, mcfg->memseg[s].len,
> +#ifndef RTE_ARCH_PPC_64
>   				 PROT_READ, MAP_PRIVATE, fd_zero, 0);
> +#else
> +                 PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, fd_zero, 0);
> +#endif
>   		if (base_addr == MAP_FAILED ||
>   		    base_addr != mcfg->memseg[s].addr) {
>   			max_seg = s;


Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>