From mboxrd@z Thu Jan 1 00:00:00 1970 From: santosh Subject: Re: Fw: [PATCH FIX-OPTION-1] mbuf: fix the logic of user mempool ops API Date: Sun, 4 Feb 2018 12:04:40 +0530 Message-ID: <0e0099bc-99f5-bd41-cc53-b0ea9ded2f53@caviumnetworks.com> References: <1517514427-28843-1-git-send-email-hemant.agrawal@nxp.com> <1517558582-27108-1-git-send-email-hemant.agrawal@nxp.com> <1517558582-27108-2-git-send-email-hemant.agrawal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Olivier MATZ , Jerin Jacob , nipun.gupta@nxp.com To: Hemant Agrawal , dev Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0077.outbound.protection.outlook.com [104.47.33.77]) by dpdk.org (Postfix) with ESMTP id 6604C5593 for ; Sun, 4 Feb 2018 07:35:01 +0100 (CET) In-Reply-To: Content-Language: en-US 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 Hemant, On Sunday 04 February 2018 11:52 AM, Shukla, Santosh wrote: > The existing rte_eal_mbuf_default mempool ops can return the compile time > default ops name if the user has not provided command line inputs for > mempool ops name. It will break the logic of best mempool ops as it will > never return platform hw mempool ops. > > This patch introduces a new API to just return the user mempool ops only. > > Fixes: 8b0f7f434132 ("mbuf: maintain user and compile time mempool ops name") > > Signed-off-by: Nipun Gupta > --- This patch introduces regression for octeontx platform. Fails with: --------- testpmd: create a new mbuf pool : n=163456, size=2176, socket=0 testpmd: preferred mempool ops selected: dpaa dpaa_mbuf_create_pool(): bman_new_pool() failed EAL: Error - exiting with code: 1 ---------- Command: ./testpmd -c 0xe00000 -n 4 -- --portmask 0x1 --nb-cores=2 --port-topology=loop --rxq=2 --txq=2 --rss-ip --no-flush-rx ------------- It's because rte_dpaa_bus_probe() sets platform mempool ops i.e. rte_mbuf_set_platform_mempool_ops(DPAA_MEMPOOL_OPS_NAME); therefore `rte_mbuf_best_mempool_ops` returns with `dpaa` ops which is incorrect mempool_ops choice for octeontx platform. We can fix such regression with following ways: # option 1) unset LIBRTE_DPAA_MEMPOOL=y from common_armv8a_linuxapp config and set at dpaa/dpaa2 specific configs commit: 1ee9569576f6 ("config: enable dpaaX drivers for generic ARMv8") # option 2) Don;t set platform mempool ops in dpaa bus layer instead defer it to driver layer. Thanks.