From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: [PATCH 1/2] mempool: indicate the usages of multi memzones Date: Wed, 17 Jan 2018 13:19:47 +0530 Message-ID: References: <1512563473-19969-1-git-send-email-hemant.agrawal@nxp.com> <20171219102456.ghipiyb2ig43d4nk@glumotte.dev.6wind.com> <830d3e36-921b-ef7a-51a4-6d135b15e973@nxp.com> <20171219110204.uqxw4xy66o65pnjz@glumotte.dev.6wind.com> <9adf0fc2-b233-26c6-b866-236d6277a4ed@nxp.com> <42572f99-99bd-ee70-e631-b817d1d679ac@nxp.com> <20171222135929.ei35n7gs55u3jqvr@platinum> <20180116135155.x5g576ax5gsy2ezv@platinum> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: To: Olivier Matz Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0056.outbound.protection.outlook.com [104.47.34.56]) by dpdk.org (Postfix) with ESMTP id 849931B1B0 for ; Wed, 17 Jan 2018 08:49:52 +0100 (CET) In-Reply-To: <20180116135155.x5g576ax5gsy2ezv@platinum> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Olivier, On 1/16/2018 7:21 PM, Olivier Matz wrote: > On Fri, Dec 22, 2017 at 09:48:01PM +0530, Hemant Agrawal wrote: >> On 12/22/2017 7:29 PM, Olivier MATZ wrote: >>> On Wed, Dec 20, 2017 at 05:29:59PM +0530, Hemant Agrawal wrote: >>>> On 12/19/2017 6:38 PM, Hemant Agrawal wrote: >>>>> >>>>>> That's true, I commented too fast :) >>>>>> And what about using mp->nb_mem_chunks instead? Would it do the job >>>>>> in your use-case? >>>>> >>>>> It should work. Let me check it out. >>>> >>>> There is a slight problem with nb_mem_chunks. >>>> >>>> It is getting incremented in the end of "rte_mempool_populate_phys", >>>> while the elements are getting populated before it in the call of >>>> mempool_add_elem. >>>> >>>> I can use nb_mem_chunks are '0' check. However it can break in future if >>>> mempool_populate_phys changes. >>> >>> Sorry, I'm not sure I'm getting what you say. >>> >>> My question was about using mp->nb_mem_chunks instead of a new flag in the >>> dppa driver. Am I missing something? >>> >> >> mp->nb_mem_chunks gets finalized when the mempool is fully created. It's >> value is transient before that i.e. it will keep on changing on the every >> call to rte_mempool_populate_phys. >> >> However, we need this information on the very first element allocation. So, >> nb_mem_chunks will not work. > > I see 2 other alternatives: > > 1/ in your driver, register a callback rte_mempool_ops_register_memory_area() > that sets a private flag if (len < total_elt_sz * mp->size). > Thanks! This one works. Now, the changes will be confined to dpaa code only. I will send a v2 for that. > 2/ Move > STAILQ_INSERT_TAIL(&mp->mem_list, memhdr, next); > mp->nb_mem_chunks++; > before the calls to mempool_add_elem(), and in your driver check if > SLIST_FIRST(&mp->mem_list)->len < total_elt_sz * mp->size > > If we can avoid to again create another flag, it is better. >