[dpdk-stable] [PATCH v1] net/virtio: fix vectorized Rx queue stuck

Maxime Coquelin maxime.coquelin at redhat.com
Tue May 4 10:26:55 CEST 2021



On 4/14/21 4:14 PM, Xueming Li wrote:
> From: ".Xueming Li" <xuemingl at nvidia.com>
> 
> When Rx queue worked in vectorized mode and rxd <= 512, under traffic of
> high PPS rate, testpmd often start and receive packets of rxd without
> further growth.
> 
> Testpmd started with rxq flush which tried to rx MAX_PKT_BURST(512)
> packets and drop. When Rx burst size >= Rx queue size, all descriptors
> in used queue consumed without rearm, device can't receive more packets.
> The next Rx burst returned at once since no used descriptors found,
> rearm logic was skipped, rx vq kept in starving state.
> 
> To avoid rx vq starving, this patch always check the available queue,
> rearm if needed even no used descriptor reported by device.
> 
> Fixes: fc3d66212fed ("virtio: add vector Rx")
> Cc: 谢华伟(此时此刻) <huawei.xhw at alibaba-inc.com>
> Fixes: 2d7c37194ee4 ("net/virtio: add NEON based Rx handler")
> Cc: jerin.jacob at caviumnetworks.com
> Fixes: 52b5a707e6ca ("net/virtio: add Altivec Rx")
> Cc: drc at linux.vnet.ibm.com
> Cc: stable at dpdk.org
> 
> Signed-off-by: Xueming Li <xuemingl at nvidia.com>
> ---
>  drivers/net/virtio/virtio_rxtx_simple_altivec.c | 12 ++++++------
>  drivers/net/virtio/virtio_rxtx_simple_neon.c    | 12 ++++++------
>  drivers/net/virtio/virtio_rxtx_simple_sse.c     | 12 ++++++------
>  3 files changed, 18 insertions(+), 18 deletions(-)
> 

Applied to dpdk-next-virtio/main.

Thanks,
Maxime




More information about the stable mailing list