> -----Original Message-----
> From: Nithin Dabilpuram <ndabilpu...@marvell.com>
> Sent: Friday, April 22, 2022 4:17 PM
> To: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Nithin Kumar
> Dabilpuram <ndabilpu...@marvell.com>; Kiran Kumar Kokkilagadda
> <kirankum...@marvell.com>; Sunil Kumar Kori <sk...@marvell.com>; Satha
> Koteswara Rao Kottidi <skotesh...@marvell.com>
> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula
> <pbhagavat...@marvell.com>; sta...@dpdk.org
> Subject: [PATCH v2 28/28] net/cnxk: fix multi-seg extraction in vwqe path
> 
> Fix multi-seg extraction in vwqe path to avoid updating mbuf[]
> array until it is used via cq0 path.
> 
> Fixes: 7fbbc981d54f ("event/cnxk: support vectorized Rx event fast path")
> Cc: pbhagavat...@marvell.com
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com>

Acked-by: Pavan Nikhilesh <pbhagavat...@marvell.com>

> ---
>  drivers/net/cnxk/cn10k_rx.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h
> index 00bec01..5ecb20f 100644
> --- a/drivers/net/cnxk/cn10k_rx.h
> +++ b/drivers/net/cnxk/cn10k_rx.h
> @@ -1673,10 +1673,6 @@ cn10k_nix_recv_pkts_vector(void *args, struct
> rte_mbuf **mbufs, uint16_t pkts,
>               vst1q_u64((uint64_t *)mbuf2->rearm_data, rearm2);
>               vst1q_u64((uint64_t *)mbuf3->rearm_data, rearm3);
> 
> -             /* Store the mbufs to rx_pkts */
> -             vst1q_u64((uint64_t *)&mbufs[packets], mbuf01);
> -             vst1q_u64((uint64_t *)&mbufs[packets + 2], mbuf23);
> -
>               if (flags & NIX_RX_MULTI_SEG_F) {
>                       /* Multi segment is enable build mseg list for
>                        * individual mbufs in scalar mode.
> @@ -1695,6 +1691,10 @@ cn10k_nix_recv_pkts_vector(void *args, struct
> rte_mbuf **mbufs, uint16_t pkts,
>                                           mbuf3, mbuf_initializer, flags);
>               }
> 
> +             /* Store the mbufs to rx_pkts */
> +             vst1q_u64((uint64_t *)&mbufs[packets], mbuf01);
> +             vst1q_u64((uint64_t *)&mbufs[packets + 2], mbuf23);
> +
>               /* Mark mempool obj as "get" as it is alloc'ed by NIX */
>               RTE_MEMPOOL_CHECK_COOKIES(mbuf0->pool, (void
> **)&mbuf0, 1, 1);
>               RTE_MEMPOOL_CHECK_COOKIES(mbuf1->pool, (void
> **)&mbuf1, 1, 1);
> --
> 2.8.4

Reply via email to