[dpdk-dev] [PATCH 3/4] virtio: use indirect ring elements

Stephen Hemminger stephen at networkplumber.org
Sun Sep 6 20:42:02 CEST 2015


On Sun, 6 Sep 2015 08:36:10 +0000
"Ouyang, Changchun" <changchun.ouyang at intel.com> wrote:

> > -----Original Message-----
> > From: Stephen Hemminger [mailto:stephen at networkplumber.org]
> > Sent: Saturday, September 5, 2015 4:58 AM
> > To: Xie, Huawei; Ouyang, Changchun
> > Cc: dev at dpdk.org; Stephen Hemminger
> > Subject: [PATCH 3/4] virtio: use indirect ring elements
> > 
> > The virtio ring in QEMU/KVM is usually limited to 256 entries and the normal
> > way that virtio driver was queuing mbufs required nsegs + 1 ring elements.
> > By using the indirect ring element feature if available, each packet will take
> > only one ring slot even for multi-segment packets.
> > 
> > Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> > ---
> >  drivers/net/virtio/virtio_ethdev.c | 11 +++++---
> > drivers/net/virtio/virtio_ethdev.h |  3 ++-
> >  drivers/net/virtio/virtio_rxtx.c   | 51 ++++++++++++++++++++++++++++++-
> > -------
> >  drivers/net/virtio/virtqueue.h     |  8 ++++++
> >  4 files changed, 57 insertions(+), 16 deletions(-)
> > 
> > diff --git a/drivers/net/virtio/virtio_ethdev.c
> > b/drivers/net/virtio/virtio_ethdev.c
> > index 465d3cd..bcfb87b 100644
> > --- a/drivers/net/virtio/virtio_ethdev.c
> > +++ b/drivers/net/virtio/virtio_ethdev.c
> > @@ -359,12 +359,15 @@ int virtio_dev_queue_setup(struct rte_eth_dev
> > *dev,
> >  	if (queue_type == VTNET_TQ) {  
> 
> Do we also need implement indirect ring elements for RX path?

No. Look at Linux driver, indirect elements are never passed to RX driver.


More information about the dev mailing list