From: "Michael S. Tsirkin" <mst@redhat.com>
To: Shirley Ma <mashirle@us.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
Krishna Kumar2 <krkumar2@in.ibm.com>,
David Miller <davem@davemloft.net>,
kvm@vger.kernel.org, netdev@vger.kernel.org, steved@us.ibm.com,
Tom Lendacky <tahm@linux.vnet.ibm.com>
Subject: Re: Network performance with small packets - continued
Date: Wed, 9 Mar 2011 18:32:01 +0200 [thread overview]
Message-ID: <20110309163201.GC7165@redhat.com> (raw)
In-Reply-To: <1299687934.25664.108.camel@localhost.localdomain>
On Wed, Mar 09, 2011 at 08:25:34AM -0800, Shirley Ma wrote:
> On Wed, 2011-03-09 at 18:10 +0200, Michael S. Tsirkin wrote:
> >
> > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> > index 82dba5a..4477b9a 100644
> > --- a/drivers/net/virtio_net.c
> > +++ b/drivers/net/virtio_net.c
> > @@ -514,11 +514,11 @@ static unsigned int free_old_xmit_skbs(struct
> > virtnet_info *vi)
> > struct sk_buff *skb;
> > unsigned int len, tot_sgs = 0;
> >
> > - while ((skb = virtqueue_get_buf(vi->svq, &len)) != NULL) {
> > + if ((skb = virtqueue_get_buf(vi->svq, &len)) != NULL) {
> > pr_debug("Sent skb %p\n", skb);
> > vi->dev->stats.tx_bytes += skb->len;
> > vi->dev->stats.tx_packets++;
> > - tot_sgs += skb_vnet_hdr(skb)->num_sg;
> > + tot_sgs = 2+MAX_SKB_FRAGS;
> > dev_kfree_skb_any(skb);
> > }
> > return tot_sgs;
> > @@ -576,7 +576,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb,
> > struct net_device *dev)
> > struct virtnet_info *vi = netdev_priv(dev);
> > int capacity;
> >
> > - /* Free up any pending old buffers before queueing new ones.
> > */
> > + /* Free up any old buffers so we can queue new ones. */
> > free_old_xmit_skbs(vi);
> >
> > /* Try to transmit */
> > @@ -605,6 +605,10 @@ static netdev_tx_t start_xmit(struct sk_buff
> > *skb, struct net_device *dev)
> > skb_orphan(skb);
> > nf_reset(skb);
> >
> > + /* Free up any old buffers so we can queue new ones. */
> > + if (capacity < 2+MAX_SKB_FRAGS)
> > + capacity += free_old_xmit_skbs(vi);
> > +
> > /* Apparently nice girls don't return TX_BUSY; stop the queue
> > * before it gets out of hand. Naturally, this wastes
> > entries. */
> > if (capacity < 2+MAX_SKB_FRAGS) {
> > --
>
> I tried this one as well. It might improve TCP_RR performance but not
> TCP_STREAM. :) Let's wait for Tom's TCP_RR resutls.
>
> Thanks
> Shirley
I think your issues are with TX overrun.
Besides delaying IRQ on TX, I don't have many ideas.
The one interesting thing is that you see better speed
if you drop packets. netdev crowd says this should not happen,
so could be an indicator of a problem somewhere.
--
MST
next prev parent reply other threads:[~2011-03-09 16:32 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-07 22:31 Network performance with small packets - continued Tom Lendacky
2011-03-09 2:34 ` Chigurupati, Chaks
2011-03-09 7:15 ` Michael S. Tsirkin
2011-03-09 7:15 ` Michael S. Tsirkin
2011-03-09 15:45 ` Shirley Ma
2011-03-09 16:10 ` Michael S. Tsirkin
2011-03-09 16:25 ` Shirley Ma
2011-03-09 16:32 ` Michael S. Tsirkin [this message]
2011-03-09 16:38 ` Shirley Ma
2011-03-09 16:09 ` Tom Lendacky
2011-03-09 16:21 ` Shirley Ma
2011-03-09 16:28 ` Michael S. Tsirkin
2011-03-09 16:51 ` Shirley Ma
2011-03-09 17:16 ` Michael S. Tsirkin
2011-03-09 18:16 ` Shirley Ma
2011-03-09 22:51 ` Tom Lendacky
2011-03-09 20:11 ` Tom Lendacky
2011-03-09 21:56 ` Michael S. Tsirkin
2011-03-09 23:25 ` Tom Lendacky
2011-03-10 6:54 ` Michael S. Tsirkin
2011-03-10 15:23 ` Tom Lendacky
2011-03-10 15:34 ` Michael S. Tsirkin
2011-03-10 17:16 ` Tom Lendacky
2011-03-18 15:38 ` Tom Lendacky
2011-03-10 0:59 ` Shirley Ma
2011-03-10 2:30 ` Rick Jones
2011-03-09 22:45 ` Shirley Ma
2011-03-09 22:57 ` Tom Lendacky
2011-03-09 7:17 ` Michael S. Tsirkin
2011-03-09 16:17 ` Tom Lendacky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110309163201.GC7165@redhat.com \
--to=mst@redhat.com \
--cc=davem@davemloft.net \
--cc=krkumar2@in.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=mashirle@us.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=steved@us.ibm.com \
--cc=tahm@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.