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.