On 1/11/21 1:16 PM, Jiayu Hu wrote:
> Async enqueue offloads large copies to DMA devices, and small copies
> are still performed by the CPU. However, it requires users to get
> enqueue completed packets by rte_vhost_poll_enqueue_completed(), even
> if they are completed by the CPU when rte_vhost_submit_enqueue_burst()
> returns. This design incurs extra overheads of tracking completed
> pktmbufs and function calls, thus degrading performance on small packets.
> 
> The first patch cleans up async enqueue code, and the second patch
> enables rte_vhost_submit_enqueue_burst() to return completed packets.
> 
> Change log
> ==========
> v4:
> - support new API in vhost example
> v3:
> - fix incorrect ret value when DMA ring is full
> - enhance description of API declaration and programmer guide
> v2:
> - fix typo
> - rename API variables
> - update programmer guide
> 
> Jiayu Hu (2):
>   vhost: cleanup async enqueue
>   vhost: enhance async enqueue for small packets
> 
>  doc/guides/prog_guide/vhost_lib.rst |   8 +-
>  examples/vhost/main.c               |  18 ++-
>  lib/librte_vhost/rte_vhost_async.h  |  34 +++--
>  lib/librte_vhost/vhost.c            |  14 +-
>  lib/librte_vhost/vhost.h            |   7 +-
>  lib/librte_vhost/vhost_user.c       |   7 +-
>  lib/librte_vhost/virtio_net.c       | 258 
> ++++++++++++++++++++----------------
>  7 files changed, 200 insertions(+), 146 deletions(-)
> 

Applied to dpdk-next-virtio/main.

Thanks,
Maxime

Reply via email to