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

Reply via email to