net/mlx5: fix order of items in neon scatter func
Checks
Commit Message
Previous patch added handling of metadata for multi-segment packet.
Function txq_scatter_v in file mlx5_rxtx_vec_neon.h was updated
incorrectly, items were inserted into WQE in wrong order.
This patch fixes the issue, inserting items into WQE correctly.
Fixes: 7f4019d370f6 ("net/mlx5: fix Tx metadata for multi-segment packet")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
Wednesday, May 15, 2019 1:08 PM, Dekel Peled:
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon scatter
> func
>
> Previous patch added handling of metadata for multi-segment packet.
> Function txq_scatter_v in file mlx5_rxtx_vec_neon.h was updated
> incorrectly, items were inserted into WQE in wrong order.
>
> This patch fixes the issue, inserting items into WQE correctly.
>
> Fixes: 7f4019d370f6 ("net/mlx5: fix Tx metadata for multi-segment packet")
> Cc: stable@dpdk.org
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> index 38e915c..b1e0e8f 100644
> --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> @@ -171,7 +171,7 @@
> /* Fill ESEG in the header. */
> vst1q_u32((void *)(t_wqe + 1),
> ((uint32x4_t){ 0,
> - cs_flags << 16 |
> rte_cpu_to_be_16(len),
> + rte_cpu_to_be_16(len) << 16 |
> cs_flags,
It was probably not introduced by the previous patch, but since you touch this area:
Why do you set the mss (len)? This function handles only non-TSO packets.
> metadata, 0 }));
> txq->wqe_ci = wqe_ci;
> }
> --
> 1.8.3.1
PSB, thanks.
> -----Original Message-----
> From: Shahaf Shuler
> Sent: Sunday, May 26, 2019 9:49 PM
> To: Dekel Peled <dekelp@mellanox.com>; Yongseok Koh
> <yskoh@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon scatter
> func
>
> Wednesday, May 15, 2019 1:08 PM, Dekel Peled:
> > Subject: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon
> > scatter func
> >
> > Previous patch added handling of metadata for multi-segment packet.
> > Function txq_scatter_v in file mlx5_rxtx_vec_neon.h was updated
> > incorrectly, items were inserted into WQE in wrong order.
> >
> > This patch fixes the issue, inserting items into WQE correctly.
> >
> > Fixes: 7f4019d370f6 ("net/mlx5: fix Tx metadata for multi-segment
> > packet")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > ---
> > drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > index 38e915c..b1e0e8f 100644
> > --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > @@ -171,7 +171,7 @@
> > /* Fill ESEG in the header. */
> > vst1q_u32((void *)(t_wqe + 1),
> > ((uint32x4_t){ 0,
> > - cs_flags << 16 |
> > rte_cpu_to_be_16(len),
> > + rte_cpu_to_be_16(len) << 16 |
> > cs_flags,
>
> It was probably not introduced by the previous patch, but since you touch
> this area:
> Why do you set the mss (len)? This function handles only non-TSO packets.
mss is set to 0 in txq_burst_v, which sends single segment packets.
This change is in txq_scatter_v which sends multi-segmented packets.
>
> > metadata, 0 }));
> > txq->wqe_ci = wqe_ci;
> > }
> > --
> > 1.8.3.1
Monday, May 27, 2019 9:50 AM, Dekel Peled:
> Subject: RE: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon scatter
> func
>
> PSB, thanks.
>
> > -----Original Message-----
> > From: Shahaf Shuler
> > Sent: Sunday, May 26, 2019 9:49 PM
> > To: Dekel Peled <dekelp@mellanox.com>; Yongseok Koh
> > <yskoh@mellanox.com>
> > Cc: dev@dpdk.org; stable@dpdk.org
> > Subject: RE: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon
> > scatter func
> >
> > Wednesday, May 15, 2019 1:08 PM, Dekel Peled:
> > > Subject: [dpdk-dev] [PATCH] net/mlx5: fix order of items in neon
> > > scatter func
> > >
> > > Previous patch added handling of metadata for multi-segment packet.
> > > Function txq_scatter_v in file mlx5_rxtx_vec_neon.h was updated
> > > incorrectly, items were inserted into WQE in wrong order.
> > >
> > > This patch fixes the issue, inserting items into WQE correctly.
> > >
> > > Fixes: 7f4019d370f6 ("net/mlx5: fix Tx metadata for multi-segment
> > > packet")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > > ---
> > > drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > > b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > > index 38e915c..b1e0e8f 100644
> > > --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > > +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
> > > @@ -171,7 +171,7 @@
> > > /* Fill ESEG in the header. */
> > > vst1q_u32((void *)(t_wqe + 1),
> > > ((uint32x4_t){ 0,
> > > - cs_flags << 16 |
> > > rte_cpu_to_be_16(len),
> > > + rte_cpu_to_be_16(len) << 16 |
> > > cs_flags,
> >
> > It was probably not introduced by the previous patch, but since you
> > touch this area:
> > Why do you set the mss (len)? This function handles only non-TSO packets.
>
> mss is set to 0 in txq_burst_v, which sends single segment packets.
> This change is in txq_scatter_v which sends multi-segmented packets.
Thanks for the clarification,
Applied to next-net-mlx, thanks.
>
> >
> > > metadata, 0 }));
> > > txq->wqe_ci = wqe_ci;
> > > }
> > > --
> > > 1.8.3.1
@@ -171,7 +171,7 @@
/* Fill ESEG in the header. */
vst1q_u32((void *)(t_wqe + 1),
((uint32x4_t){ 0,
- cs_flags << 16 | rte_cpu_to_be_16(len),
+ rte_cpu_to_be_16(len) << 16 | cs_flags,
metadata, 0 }));
txq->wqe_ci = wqe_ci;
}