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

Reply via email to