From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.droids-corp.org (zoll.droids-corp.org [94.23.50.67]) by dpdk.org (Postfix) with ESMTP id ADF92A48D for ; Fri, 19 Jan 2018 13:43:54 +0100 (CET) Received: from lfbn-lil-1-110-231.w90-45.abo.wanadoo.fr ([90.45.197.231] helo=droids-corp.org) by mail.droids-corp.org with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ecW1W-0001U5-1Z; Fri, 19 Jan 2018 13:43:59 +0100 Received: by droids-corp.org (sSMTP sendmail emulation); Fri, 19 Jan 2018 13:43:51 +0100 Date: Fri, 19 Jan 2018 13:43:51 +0100 From: Olivier Matz To: Hemant Agrawal Cc: dev@dpdk.org, jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, Pavan Nikhilesh Message-ID: <20180119124351.e2fy6hjipjjxrwme@platinum> References: <1515996674-26338-1-git-send-email-hemant.agrawal@nxp.com> <1516281992-6873-1-git-send-email-hemant.agrawal@nxp.com> <1516281992-6873-3-git-send-email-hemant.agrawal@nxp.com> <20180119100137.ezr44stykkb3udqc@platinum> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [dpdk-dev] [PATCH v3 2/7] eal: add API to set user default mbuf mempool ops 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, 19 Jan 2018 12:43:54 -0000 On Fri, Jan 19, 2018 at 06:01:55PM +0530, Hemant Agrawal wrote: > Hi Olivier, > > On 1/19/2018 3:31 PM, Olivier Matz wrote: > > On Thu, Jan 18, 2018 at 06:56:27PM +0530, Hemant Agrawal wrote: > > > Add new API to set the user defined mbuf mempool ops name > > > i.e. set the provided ops name to `internal_config.mbuf_pool_ops_name`. > > > > > > Signed-off-by: Pavan Nikhilesh > > > Signed-off-by: Hemant Agrawal > > > --- > > > lib/librte_eal/bsdapp/eal/eal.c | 6 ++++++ > > > lib/librte_eal/common/include/rte_eal.h | 9 +++++++++ > > > lib/librte_eal/linuxapp/eal/eal.c | 6 ++++++ > > > lib/librte_eal/rte_eal_version.map | 1 + > > > 4 files changed, 22 insertions(+) > > > > > > diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c > > > index c602d02..64f010a 100644 > > > --- a/lib/librte_eal/bsdapp/eal/eal.c > > > +++ b/lib/librte_eal/bsdapp/eal/eal.c > > > @@ -117,6 +117,12 @@ rte_eal_mbuf_default_mempool_ops(void) > > > return internal_config.user_mbuf_pool_ops_name; > > > } > > > > > > +void > > > +rte_eal_set_mbuf_user_mempool_ops(const char *ops_name) > > > +{ > > > + internal_config.user_mbuf_pool_ops_name = ops_name; > > > +} > > > + > > > > I think we should only have the "set" API in mbuf lib. > > > > What do you think about what I suggested in > > http://dpdk.org/ml/archives/dev/2018-January/087419.html ? > > > > """ > > The proper way is maybe to keep the parsing in eal, and at librte_mbuf > > initialization, query the eal library to get the user pool if any. > > After that, all will be managed inside librte_mbuf. So the eal lib will > > only do the argument parsing. > > """ > > > > Will you please help me in understanding, how should I do it? > > 1. The is no standard librte_mbuf initialization routine. RTE_INIT will not > work, as it will be executed before eal_init. dlopen is for shared lib only. > Is there any other method? > > 2. If I call it on the very first call of rte_mbuf_user_mempool_ops_name or > rte_mbuf_set_user_mempool_ops_name, I will be checking against NULL. It can > be NULL always. So, no real meaning of maintaining it in librte_mbuf as > well. > Yes, I can maintain a flag to know, If I have synced with eal parse before. > But that is not sounding to me clean. My initial idea was to do it at init, but I came to the same conclusion than yours, it is not possible. Can you take a look to the comments of patch 3/7 and let me know if the proposition fits your needs?