Thanks we also identified it. The fix is on the way.

Sent from my Android phone using TouchDown (www.symantec.com)

-----Original Message-----
From: santosh [santosh.shu...@caviumnetworks.com]
Received: Sunday, 04 Feb 2018, 12:05PM
To: Hemant Agrawal [hemant.agra...@nxp.com]; dev [dev@dpdk.org]
CC: Olivier MATZ [olivier.m...@6wind.com]; Jerin Jacob 
[jerin.ja...@caviumnetworks.com]; Nipun Gupta [nipun.gu...@nxp.com]
Subject: Re: Fw: [PATCH FIX-OPTION-1] mbuf: fix the logic of user mempool ops 
API

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 <nipun.gu...@nxp.com>
> ---

This patch introduces regression for octeontx platform.
Fails with:
---------
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: 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.


Reply via email to