[dpdk-dev] [PATCH 3/5] net/virtio: fix in-order Tx path for packed ring

Maxime Coquelin maxime.coquelin at redhat.com
Thu Feb 21 12:16:24 CET 2019



On 2/19/19 11:59 AM, Tiwei Bie wrote:
> When IN_ORDER feature is negotiated, device may just write out a
> single used descriptor for a batch of buffers:
> 
> """
> Some devices always use descriptors in the same order in which they
> have been made available. These devices can offer the VIRTIO_F_IN_ORDER
> feature. If negotiated, this knowledge allows devices to notify the
> use of a batch of buffers to the driver by only writing out a single
> used descriptor with the Buffer ID corresponding to the last descriptor
> in the batch.
> 
> The device then skips forward in the ring according to the size of the
> batch. The driver needs to look up the used Buffer ID and calculate the
> batch size to be able to advance to where the next used descriptor will
> be written by the device.
> """
> 
> But the Tx path of packed ring can't handle this. With this patch,
> when IN_ORDER is negotiated, driver will manage the IDs linearly,
> look up the used buffer ID and advance to the next used descriptor
> that will be written by the device.
> 
> Fixes: 892dc798fa9c ("net/virtio: implement Tx path for packed queues")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
> ---
>   drivers/net/virtio/virtio_ethdev.c |  4 +-
>   drivers/net/virtio/virtio_rxtx.c   | 69 ++++++++++++++++++++++++------
>   2 files changed, 59 insertions(+), 14 deletions(-)
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

Thanks,
Maxime


More information about the dev mailing list