DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] net/virtio: fix incorrect slots number when indirect feature on
@ 2022-01-20 12:22 Marvin Liu
  2022-02-01  8:53 ` Maxime Coquelin
  2022-02-08 11:11 ` Maxime Coquelin
  0 siblings, 2 replies; 3+ messages in thread
From: Marvin Liu @ 2022-01-20 12:22 UTC (permalink / raw)
  To: maxime.coquelin, chenbo.xia; +Cc: dev, Marvin Liu, stable

Virtio driver only occupies one slot for enqueuing chained mbufs when
indirect feature is on. Required slots calculation should depend on
indirect feature status at the end.

Fixes: 0eaf7fc2fe8e ("net/virtio: separate AVX Rx/Tx")
Cc: stable@dpdk.org

Signed-off-by: Marvin Liu <yong.liu@intel.com>

diff --git a/drivers/net/virtio/virtio_rxtx_packed.h b/drivers/net/virtio/virtio_rxtx_packed.h
index d5c259a1f6..536112983c 100644
--- a/drivers/net/virtio/virtio_rxtx_packed.h
+++ b/drivers/net/virtio/virtio_rxtx_packed.h
@@ -125,13 +125,12 @@ virtqueue_enqueue_single_packed_vec(struct virtnet_tx *txvq,
 	 * any_layout => number of segments
 	 * default    => number of segments + 1
 	 */
-	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
 	can_push = rte_mbuf_refcnt_read(txm) == 1 &&
 		   RTE_MBUF_DIRECT(txm) &&
 		   txm->nb_segs == 1 &&
 		   rte_pktmbuf_headroom(txm) >= hdr_size;
 
-	slots = txm->nb_segs + !can_push;
+	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
 	need = slots - vq->vq_free_cnt;
 
 	/* Positive value indicates it need free vring descriptors */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net/virtio: fix incorrect slots number when indirect feature on
  2022-01-20 12:22 [PATCH] net/virtio: fix incorrect slots number when indirect feature on Marvin Liu
@ 2022-02-01  8:53 ` Maxime Coquelin
  2022-02-08 11:11 ` Maxime Coquelin
  1 sibling, 0 replies; 3+ messages in thread
From: Maxime Coquelin @ 2022-02-01  8:53 UTC (permalink / raw)
  To: Marvin Liu, chenbo.xia; +Cc: dev, stable



On 1/20/22 13:22, Marvin Liu wrote:
> Virtio driver only occupies one slot for enqueuing chained mbufs when
> indirect feature is on. Required slots calculation should depend on
> indirect feature status at the end.
> 
> Fixes: 0eaf7fc2fe8e ("net/virtio: separate AVX Rx/Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Marvin Liu <yong.liu@intel.com>
> 
> diff --git a/drivers/net/virtio/virtio_rxtx_packed.h b/drivers/net/virtio/virtio_rxtx_packed.h
> index d5c259a1f6..536112983c 100644
> --- a/drivers/net/virtio/virtio_rxtx_packed.h
> +++ b/drivers/net/virtio/virtio_rxtx_packed.h
> @@ -125,13 +125,12 @@ virtqueue_enqueue_single_packed_vec(struct virtnet_tx *txvq,
>   	 * any_layout => number of segments
>   	 * default    => number of segments + 1
>   	 */
> -	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
>   	can_push = rte_mbuf_refcnt_read(txm) == 1 &&
>   		   RTE_MBUF_DIRECT(txm) &&
>   		   txm->nb_segs == 1 &&
>   		   rte_pktmbuf_headroom(txm) >= hdr_size;
>   
> -	slots = txm->nb_segs + !can_push;
> +	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
>   	need = slots - vq->vq_free_cnt;
>   
>   	/* Positive value indicates it need free vring descriptors */

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net/virtio: fix incorrect slots number when indirect feature on
  2022-01-20 12:22 [PATCH] net/virtio: fix incorrect slots number when indirect feature on Marvin Liu
  2022-02-01  8:53 ` Maxime Coquelin
@ 2022-02-08 11:11 ` Maxime Coquelin
  1 sibling, 0 replies; 3+ messages in thread
From: Maxime Coquelin @ 2022-02-08 11:11 UTC (permalink / raw)
  To: Marvin Liu, chenbo.xia; +Cc: dev, stable



On 1/20/22 13:22, Marvin Liu wrote:
> Virtio driver only occupies one slot for enqueuing chained mbufs when
> indirect feature is on. Required slots calculation should depend on
> indirect feature status at the end.
> 
> Fixes: 0eaf7fc2fe8e ("net/virtio: separate AVX Rx/Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Marvin Liu <yong.liu@intel.com>
> 
> diff --git a/drivers/net/virtio/virtio_rxtx_packed.h b/drivers/net/virtio/virtio_rxtx_packed.h
> index d5c259a1f6..536112983c 100644
> --- a/drivers/net/virtio/virtio_rxtx_packed.h
> +++ b/drivers/net/virtio/virtio_rxtx_packed.h
> @@ -125,13 +125,12 @@ virtqueue_enqueue_single_packed_vec(struct virtnet_tx *txvq,
>   	 * any_layout => number of segments
>   	 * default    => number of segments + 1
>   	 */
> -	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
>   	can_push = rte_mbuf_refcnt_read(txm) == 1 &&
>   		   RTE_MBUF_DIRECT(txm) &&
>   		   txm->nb_segs == 1 &&
>   		   rte_pktmbuf_headroom(txm) >= hdr_size;
>   
> -	slots = txm->nb_segs + !can_push;
> +	slots = use_indirect ? 1 : (txm->nb_segs + !can_push);
>   	need = slots - vq->vq_free_cnt;
>   
>   	/* Positive value indicates it need free vring descriptors */

Applied to dpdk-next-virtio/main.

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-08 11:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-20 12:22 [PATCH] net/virtio: fix incorrect slots number when indirect feature on Marvin Liu
2022-02-01  8:53 ` Maxime Coquelin
2022-02-08 11:11 ` Maxime Coquelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).