On 7/21/20 7:47 AM, patrick...@intel.com wrote:
> From: Patrick Fu <patrick...@intel.com>
>
> In async enqueue copy, a packet could be split into multiple copy
> segments. When polling the copy completion status, current async data
> path assumes the async device callbacks are aware of the packet
> boundary and return completed segments only if all segments belonging
> to the same packet are done. Such assumption are not generic to common
> async devices and may degrees the copy performance if async callbacks
s/degrees/degrades/
> have to implement it in software manner.
>
> This patch adds tracking of the completed copy segments at vhost side.
> If async copy device reports partial completion of a packets, only
> vhost internal record is updated and vring status keeps unchanged
> until remaining segments of the packet are also finished. The async
> copy device is no longer necessary to care about the packet boundary.
>
> Fixes: cd6760da1076 ("vhost: introduce async enqueue for split ring")
>
> Signed-off-by: Patrick Fu <patrick...@intel.com>
> ---
> v2:
> - fix an issue that can stuck async poll when packets buffer is full
> v3:
> - revise commit message and title
> - rename a local variable to better reflect its usage
>
> lib/librte_vhost/vhost.h | 3 +++
> lib/librte_vhost/virtio_net.c | 27 +++++++++++++++++----------
> 2 files changed, 20 insertions(+), 10 deletions(-)
With above typo fixed (can be done when applying, no need to resend):
Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>
Thanks,
Maxime