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

Maxime Coquelin maxime.coquelin at redhat.com
Thu Feb 21 12:08:08 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 ring entry 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 ring entry with the id corresponding to the head entry of the
> descriptor chain describing the last buffer in the batch.
> 
> The device then skips forward in the ring according to the size of
> the batch. Accordingly, it increments the used idx by the size of
> the batch.
> 
> The driver needs to look up the used id and calculate the batch size
> to be able to advance to where the next used ring entry will be written
> by the device.
> """
> 
> Currently, the in-order Tx path in split ring can't handle this.
> With this patch, driver will allocate desc_extra[] based on the
> index in avail/used ring instead of the index in descriptor table.
> And driver can just relay on the used->idx written by device to
> reclaim the descriptors and Tx buffers.
> 
> Fixes: e5f456a98d3c ("net/virtio: support in-order Rx and Tx")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
> ---
>   drivers/net/virtio/virtio_rxtx.c | 28 ++++++++++------------------
>   1 file changed, 10 insertions(+), 18 deletions(-)
> 
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>

Thanks,
Maxime


More information about the dev mailing list