On 10/13/20 3:45 AM, Patrick Fu wrote: > Current async ops allows check_completed_copies() callback to return > arbitrary number of async iov segments finished from backend async > devices. This design creates complexity for vhost to handle breaking > transfer of a single packet (i.e. transfer completes in the middle > of a async descriptor) and prevents application callbacks from > leveraging hardware capability to offload the work. Thus, this patch > enforces the check_completed_copies() callback to return the number > of async memory descriptors, which is aligned with async transfer > data ops callbacks. vHost async data path are revised to work with > new ops define, which provides a clean and simplified processing. > > Signed-off-by: Patrick Fu <patrick...@intel.com> > --- > lib/librte_vhost/rte_vhost_async.h | 15 ++- > lib/librte_vhost/vhost.c | 20 ++-- > lib/librte_vhost/vhost.h | 8 +- > lib/librte_vhost/vhost_user.c | 6 +- > lib/librte_vhost/virtio_net.c | 149 ++++++++++++----------------- > 5 files changed, 88 insertions(+), 110 deletions(-) > Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> Thanks, Maxime