From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Rybchenko Subject: Re: [PATCH v5 3/5] lib/mempool: allow page size aligned mempool Date: Mon, 25 Mar 2019 12:04:24 +0300 Message-ID: <3ee92f43-eabf-7a97-dc3a-3669023edeff@solarflare.com> References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190325060400.40291-1-xiaolong.ye@intel.com> <20190325060400.40291-4-xiaolong.ye@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Cc: Qi Zhang , Karlsson Magnus , Topel Bjorn , "Maxime Coquelin" , Stephen Hemminger , Ferruh Yigit , "Luca Boccassi" , Bruce Richardson , Ananyev Konstantin , Olivier Matz To: Xiaolong Ye , , David Marchand Return-path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id D57A7239 for ; Mon, 25 Mar 2019 10:04:38 +0100 (CET) In-Reply-To: <20190325060400.40291-4-xiaolong.ye@intel.com> Content-Language: en-GB List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 3/25/19 9:03 AM, Xiaolong Ye wrote: > Allow create a mempool with page size aligned base address. > > Signed-off-by: Qi Zhang > Signed-off-by: Xiaolong Ye > --- > lib/librte_mempool/rte_mempool.c | 3 +++ > lib/librte_mempool/rte_mempool.h | 1 + > 2 files changed, 4 insertions(+) > > diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c > index 683b216f9..171ba1057 100644 > --- a/lib/librte_mempool/rte_mempool.c > +++ b/lib/librte_mempool/rte_mempool.c > @@ -543,6 +543,9 @@ rte_mempool_populate_default(struct rte_mempool *mp) > if (try_contig) > flags |= RTE_MEMZONE_IOVA_CONTIG; > > + if (mp->flags & MEMPOOL_F_PAGE_ALIGN) > + align = RTE_MAX(align, (size_t)getpagesize()); > + > mz = rte_memzone_reserve_aligned(mz_name, mem_size, > mp->socket_id, flags, align); > > diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h > index 7c9cd9a2f..75553b36f 100644 > --- a/lib/librte_mempool/rte_mempool.h > +++ b/lib/librte_mempool/rte_mempool.h > @@ -264,6 +264,7 @@ struct rte_mempool { > #define MEMPOOL_F_POOL_CREATED 0x0010 /**< Internal: pool is created. */ > #define MEMPOOL_F_NO_IOVA_CONTIG 0x0020 /**< Don't need IOVA contiguous objs. */ > #define MEMPOOL_F_NO_PHYS_CONTIG MEMPOOL_F_NO_IOVA_CONTIG /* deprecated */ > +#define MEMPOOL_F_PAGE_ALIGN 0x0040 /**< Chunk's base address is page aligned */ For me it sounds like mempool objects should be page aligned since MEMPOOL_F_NO_SPREAD, MEMPOOL_F_NO_CACHE_ALIGN and MEMPOOL_F_NO_IOVA_CONTIG say about object properties, not chunk. Personally I doubt that the final goal is just having chunk page aligned. Andrew.