On 11/17/2022 4:03 PM, Hanumanth Pothula wrote: > Validate ethdev parameter 'max_rx_mempools' to know whether > device supports multi-mempool feature or not. > > Bugzilla ID: 1128 > > Signed-off-by: Hanumanth Pothula <hpoth...@marvell.com> > v3: > - Simplified conditional check. > - Corrected spell, whether. > v2: > - Rebased on tip of next-net/main. > --- > app/test-pmd/testpmd.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 4e25f77c6a..6c3d0948ec 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -2655,16 +2655,22 @@ rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, > union rte_eth_rxseg rx_useg[MAX_SEGS_BUFFER_SPLIT] = {}; > struct rte_mempool *rx_mempool[MAX_MEMPOOL] = {}; > struct rte_mempool *mpx; > + struct rte_eth_dev_info dev_info; > unsigned int i, mp_n; > uint32_t prev_hdrs = 0; > int ret; > > + ret = rte_eth_dev_info_get(port_id, &dev_info); > + if (ret != 0) > + return ret; > + > /* Verify Rx queue configuration is single pool and segment or > * multiple pool/segment. > + * @see rte_eth_dev_info::max_rx_mempools > * @see rte_eth_rxconf::rx_mempools > * @see rte_eth_rxconf::rx_seg > */ > - if (!(mbuf_data_size_n > 1) && !(rx_pkt_nb_segs > 1 || > + if ((dev_info.max_rx_mempools == 0) && !(rx_pkt_nb_segs > 1 || > ((rx_conf->offloads & RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT) != 0))) { > /* Single pool/segment configuration */ > rx_conf->rx_seg = NULL;
Hi Yingya, Yu, Can you please verify this patch? Thanks, ferruh