[dpdk-dev] [PATCH v2 05/15] vhost: remove async batch threshold
Xia, Chenbo
chenbo.xia at intel.com
Fri Oct 29 08:19:18 CEST 2021
> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin at redhat.com>
> Sent: Wednesday, October 27, 2021 12:29 AM
> To: dev at dpdk.org; Xia, Chenbo <chenbo.xia at intel.com>; Hu, Jiayu
> <jiayu.hu at intel.com>; Wang, YuanX <yuanx.wang at intel.com>; Ma, WenwuX
> <wenwux.ma at intel.com>; Richardson, Bruce <bruce.richardson at intel.com>;
> Mcnamara, John <john.mcnamara at intel.com>
> Cc: Maxime Coquelin <maxime.coquelin at redhat.com>
> Subject: [PATCH v2 05/15] vhost: remove async batch threshold
>
> Reaching the async batch threshold was one of the condition
> to trigger the DMA transfer. However, this condition was
> never met since the threshold value is 32, same as the
> MAX_PKT_BURST value.
>
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
> lib/vhost/virtio_net.c | 14 ++++----------
> 1 file changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
> index f0d923704a..c4a8b5276f 100644
> --- a/lib/vhost/virtio_net.c
> +++ b/lib/vhost/virtio_net.c
> @@ -25,8 +25,6 @@
>
> #define MAX_BATCH_LEN 256
>
> -#define VHOST_ASYNC_BATCH_THRESHOLD 32
> -
> static __rte_always_inline bool
> rxvq_is_mergeable(struct virtio_net *dev)
> {
> @@ -1565,12 +1563,10 @@ virtio_dev_rx_async_submit_split(struct virtio_net
> *dev,
> vq->last_avail_idx += num_buffers;
>
> /*
> - * conditions to trigger async device transfer:
> - * - buffered packet number reaches transfer threshold
> + * condition to trigger async device transfer:
> * - unused async iov number is less than max vhost vector
> */
> - if (unlikely(pkt_burst_idx >= VHOST_ASYNC_BATCH_THRESHOLD ||
> - (VHOST_MAX_ASYNC_VEC - iovec_idx < BUF_VECTOR_MAX))) {
> + if (unlikely(VHOST_MAX_ASYNC_VEC - iovec_idx < BUF_VECTOR_MAX)) {
> n_xfer = async->ops.transfer_data(dev->vid,
> queue_id, tdes, 0, pkt_burst_idx);
> if (likely(n_xfer >= 0)) {
> @@ -1864,12 +1860,10 @@ virtio_dev_rx_async_submit_packed(struct virtio_net
> *dev,
> vq_inc_last_avail_packed(vq, num_descs);
>
> /*
> - * conditions to trigger async device transfer:
> - * - buffered packet number reaches transfer threshold
> + * condition to trigger async device transfer:
> * - unused async iov number is less than max vhost vector
> */
> - if (unlikely(pkt_burst_idx >= VHOST_ASYNC_BATCH_THRESHOLD ||
> - (VHOST_MAX_ASYNC_VEC - iovec_idx < BUF_VECTOR_MAX))) {
> + if (unlikely(VHOST_MAX_ASYNC_VEC - iovec_idx < BUF_VECTOR_MAX)) {
> n_xfer = async->ops.transfer_data(dev->vid,
> queue_id, tdes, 0, pkt_burst_idx);
> if (likely(n_xfer >= 0)) {
> --
> 2.31.1
Reviewed-by: Chenbo Xia <chenbo.xia at intel.com>
More information about the dev
mailing list