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.
>
> This patch enhances async enqueue for small packets by enabling
> rte_vhost_submit_enqueue_burst() to return completed packets.
>
> Signed-off-by: Jiayu Hu <jiayu...@intel.com>
> Tested-by: Yinan Wang <yinan.w...@intel.com>
> ---
> doc/guides/prog_guide/vhost_lib.rst | 8 +-
> examples/vhost/main.c | 18 ++-
> lib/librte_vhost/rte_vhost_async.h | 30 +++--
> 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 | 242
> ++++++++++++++++++++----------------
> 7 files changed, 190 insertions(+), 136 deletions(-)
>
Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>
Thanks,
Maxime