From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 4584E343C for ; Fri, 29 Mar 2019 11:37:31 +0100 (CET) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 6E1D5B4005D; Fri, 29 Mar 2019 10:37:29 +0000 (UTC) Received: from [192.168.38.17] (91.220.146.112) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 29 Mar 2019 10:37:20 +0000 To: Xiaolong Ye , , David Marchand CC: Qi Zhang , Karlsson Magnus , Topel Bjorn , "Maxime Coquelin" , Stephen Hemminger , Ferruh Yigit , "Luca Boccassi" , Bruce Richardson , Ananyev Konstantin References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190327090027.72170-1-xiaolong.ye@intel.com> <20190327090027.72170-4-xiaolong.ye@intel.com> From: Andrew Rybchenko Message-ID: <7356c3b8-94d0-1b15-662b-09fd345f0f45@solarflare.com> Date: Fri, 29 Mar 2019 13:37:17 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190327090027.72170-4-xiaolong.ye@intel.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB X-Originating-IP: [91.220.146.112] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24518.003 X-TM-AS-Result: No-14.074400-8.000000-10 X-TMASE-MatchedRID: cgbqQT5W8hcOwH4pD14DsPHkpkyUphL9Xs5nqGvDCfMUtdRZTmEaIXB4 4IkzjfYyF8NKa4AxCmCFxEOJpXwK3ZiLbpSaDQLh5O5PclyYqqoMkbIeqnhWfEmVes1pwna5IC4 PLpL0oW/UYx9Z8yJR6YTEwvdFJ2CW1dDZHbsJnLMzw5Ejs3g1lrdnMZUwhYHGmyiLZetSf8nJ4y 0wP1A6AKEwgORH8p/AjaPj0W1qn0Q7AFczfjr/7BKk0+4Vu5wQ8FMiQPZqHsClqkFE9ZL5ybll4 sebvkDZzgyKmOwky/8= X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--14.074400-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24518.003 X-MDID: 1553855850-gLIE3GHaju8Y Subject: Re: [dpdk-dev] [PATCH v7 3/5] lib/mempool: allow page size aligned mempool X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Mar 2019 10:37:31 -0000 On 3/27/19 12:00 PM, 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..cfbb49ea5 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_CHUNK_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..47729f7c9 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_CHUNK_F_PAGE_ALIGN 0x0040 /**< Chunk's base address is page aligned */ Now the define name better explains what happens. I would name it MEMPOOL_F_CHUNK_PAGE_ALIGN to have MEMPOOL_F_ prefix for all flags, but it is minor. More important is what is behind and I have doubts that it is a right way to go. I have already asked what is the final goal (but agree that question is unclear). Personally I doubt that the final goal is just having chunk page aligned. It looks like the patch makes an assumption on how chunk is sliced into objects/elements and the property of chunk address allows to achieve some goal with elements start address. It looks very fragile and easily breakable with other flags (or no flags). Also prefix should be just "mempool:", not "lib/mempool". Andrew. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 40CF4A05D3 for ; Fri, 29 Mar 2019 11:37:34 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 86C291DB8; Fri, 29 Mar 2019 11:37:33 +0100 (CET) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 4584E343C for ; Fri, 29 Mar 2019 11:37:31 +0100 (CET) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 6E1D5B4005D; Fri, 29 Mar 2019 10:37:29 +0000 (UTC) Received: from [192.168.38.17] (91.220.146.112) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 29 Mar 2019 10:37:20 +0000 To: Xiaolong Ye , , David Marchand CC: Qi Zhang , Karlsson Magnus , Topel Bjorn , "Maxime Coquelin" , Stephen Hemminger , Ferruh Yigit , "Luca Boccassi" , Bruce Richardson , Ananyev Konstantin References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190327090027.72170-1-xiaolong.ye@intel.com> <20190327090027.72170-4-xiaolong.ye@intel.com> From: Andrew Rybchenko Message-ID: <7356c3b8-94d0-1b15-662b-09fd345f0f45@solarflare.com> Date: Fri, 29 Mar 2019 13:37:17 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190327090027.72170-4-xiaolong.ye@intel.com> Content-Type: text/plain; charset="UTF-8"; format="flowed" Content-Transfer-Encoding: 7bit Content-Language: en-GB X-Originating-IP: [91.220.146.112] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24518.003 X-TM-AS-Result: No-14.074400-8.000000-10 X-TMASE-MatchedRID: cgbqQT5W8hcOwH4pD14DsPHkpkyUphL9Xs5nqGvDCfMUtdRZTmEaIXB4 4IkzjfYyF8NKa4AxCmCFxEOJpXwK3ZiLbpSaDQLh5O5PclyYqqoMkbIeqnhWfEmVes1pwna5IC4 PLpL0oW/UYx9Z8yJR6YTEwvdFJ2CW1dDZHbsJnLMzw5Ejs3g1lrdnMZUwhYHGmyiLZetSf8nJ4y 0wP1A6AKEwgORH8p/AjaPj0W1qn0Q7AFczfjr/7BKk0+4Vu5wQ8FMiQPZqHsClqkFE9ZL5ybll4 sebvkDZzgyKmOwky/8= X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--14.074400-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24518.003 X-MDID: 1553855850-gLIE3GHaju8Y Subject: Re: [dpdk-dev] [PATCH v7 3/5] lib/mempool: allow page size aligned mempool X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190329103717.geGVsueQoq7hHptVYEpct9xp9ABkCAAXGljMKrO5jHk@z> On 3/27/19 12:00 PM, 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..cfbb49ea5 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_CHUNK_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..47729f7c9 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_CHUNK_F_PAGE_ALIGN 0x0040 /**< Chunk's base address is page aligned */ Now the define name better explains what happens. I would name it MEMPOOL_F_CHUNK_PAGE_ALIGN to have MEMPOOL_F_ prefix for all flags, but it is minor. More important is what is behind and I have doubts that it is a right way to go. I have already asked what is the final goal (but agree that question is unclear). Personally I doubt that the final goal is just having chunk page aligned. It looks like the patch makes an assumption on how chunk is sliced into objects/elements and the property of chunk address allows to achieve some goal with elements start address. It looks very fragile and easily breakable with other flags (or no flags). Also prefix should be just "mempool:", not "lib/mempool". Andrew.