All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Krishna Kumar2 <krkumar2@in.ibm.com>
Cc: anthony@codemonkey.ws, davem@davemloft.net, kvm@vger.kernel.org,
	netdev@vger.kernel.org, rusty@rustcorp.com.au,
	rick.jones2@hp.com
Subject: Re: [RFC PATCH 0/4] Implement multiqueue virtio-net
Date: Wed, 8 Sep 2010 13:48:33 +0300	[thread overview]
Message-ID: <20100908104833.GJ23051@redhat.com> (raw)
In-Reply-To: <OFB2808A12.59A863DC-ON65257798.002E987B-65257798.0033564B@in.ibm.com>

On Wed, Sep 08, 2010 at 02:53:03PM +0530, Krishna Kumar2 wrote:
> "Michael S. Tsirkin" <mst@redhat.com> wrote on 09/08/2010 01:40:11 PM:
> 
> >
> _______________________________________________________________________________
> 
> > >                            TCP (#numtxqs=2)
> > > N#      BW1     BW2    (%)      SD1     SD2    (%)      RSD1    RSD2
> (%)
> > >
> >
> _______________________________________________________________________________
> 
> > > 4       26387   40716 (54.30)   20      28   (40.00)    86i     85
> (-1.16)
> > > 8       24356   41843 (71.79)   88      129  (46.59)    372     362
> (-2.68)
> > > 16      23587   40546 (71.89)   375     564  (50.40)    1558    1519
> (-2.50)
> > > 32      22927   39490 (72.24)   1617    2171 (34.26)    6694    5722
> (-14.52)
> > > 48      23067   39238 (70.10)   3931    5170 (31.51)    15823   13552
> (-14.35)
> > > 64      22927   38750 (69.01)   7142    9914 (38.81)    28972   26173
> (-9.66)
> > > 96      22568   38520 (70.68)   16258   27844 (71.26)   65944   73031
> (10.74)
> >
> > That's a significant hit in TCP SD. Is it caused by the imbalance between
> > number of queues for TX and RX? Since you mention RX is complete,
> > maybe measure with a balanced TX/RX?
> 
> Yes, I am not sure why it is so high.

Any errors at higher levels? Are any packets reordered?

> I found the same with #RX=#TX
> too. As a hack, I tried ixgbe without MQ (set "indices=1" before
> calling alloc_etherdev_mq, not sure if that is entirely correct) -
> here too SD worsened by around 40%. I can't explain it, since the
> virtio-net driver runs lock free once sch_direct_xmit gets
> HARD_TX_LOCK for the specific txq. Maybe the SD calculation is not strictly
> correct since
> more threads are now running parallel and load is higher? Eg, if you
> compare SD between
> #netperfs = 8 vs 16 for original code (cut-n-paste relevant columns
> only) ...
> 
> N#         BW        SD
> 8           24356   88
> 16         23587   375
> 
> ... SD has increased more than 4 times for the same BW.
> 
> > What happens with a single netperf?
> > host -> guest performance with TCP and small packet speed
> > are also worth measuring.
> 
> OK, I will do this and send the results later today.
> 
> > At some level, host/guest communication is easy in that we don't really
> > care which queue is used.  I would like to give some thought (and
> > testing) to how is this going to work with a real NIC card and packet
> > steering at the backend.
> > Any idea?
> 
> I have done a little testing with guest -> remote server both
> using a bridge and with macvtap (mq is required only for rx).
> I didn't understand what you mean by packet steering though,
> is it whether packets go out of the NIC on different queues?
> If so, I verified that is the case by putting a counter and
> displaying through /debug interface on the host. dev_queue_xmit
> on the host handles it by calling dev_pick_tx().
> 
> > > Guest interrupts for a 4 TXQ device after a 5 min test:
> > > # egrep "virtio0|CPU" /proc/interrupts
> > >       CPU0     CPU1     CPU2    CPU3
> > > 40:   0        0        0       0        PCI-MSI-edge  virtio0-config
> > > 41:   126955   126912   126505  126940   PCI-MSI-edge  virtio0-input
> > > 42:   108583   107787   107853  107716   PCI-MSI-edge  virtio0-output.0
> > > 43:   300278   297653   299378  300554   PCI-MSI-edge  virtio0-output.1
> > > 44:   372607   374884   371092  372011   PCI-MSI-edge  virtio0-output.2
> > > 45:   162042   162261   163623  162923   PCI-MSI-edge  virtio0-output.3
> >
> > Does this mean each interrupt is constantly bouncing between CPUs?
> 
> Yes. I didn't do *any* tuning for the tests. The only "tuning"
> was to use 64K IO size with netperf. When I ran default netperf
> (16K), I got a little lesser improvement in BW and worse(!) SD
> than with 64K.
> 
> Thanks,
> 
> - KK

  reply	other threads:[~2010-09-08 10:55 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-08  7:28 [RFC PATCH 0/4] Implement multiqueue virtio-net Krishna Kumar
2010-09-08  7:29 ` [RFC PATCH 1/4] Add a new API to virtio-pci Krishna Kumar
2010-09-09  3:49   ` Rusty Russell
2010-09-09  5:23     ` Krishna Kumar2
2010-09-09 12:14       ` Rusty Russell
2010-09-09 13:49         ` Krishna Kumar2
2010-09-10  3:33           ` Rusty Russell
2010-09-12 11:46           ` Michael S. Tsirkin
2010-09-13  4:20             ` Krishna Kumar2
2010-09-13  9:04               ` Michael S. Tsirkin
2010-09-13 15:59                 ` Anthony Liguori
2010-09-13 16:30                   ` Michael S. Tsirkin
2010-09-13 17:00                     ` Avi Kivity
2010-09-15  5:35                       ` Michael S. Tsirkin
2010-09-13 17:40                     ` Anthony Liguori
2010-09-15  5:40                       ` Michael S. Tsirkin
2010-09-08  7:29 ` [RFC PATCH 2/4] Changes for virtio-net Krishna Kumar
2010-09-08  7:29 ` [RFC PATCH 3/4] Changes for vhost Krishna Kumar
2010-09-08  7:29 ` [RFC PATCH 4/4] qemu changes Krishna Kumar
2010-09-08  7:47 ` [RFC PATCH 0/4] Implement multiqueue virtio-net Avi Kivity
2010-09-08  9:22   ` Krishna Kumar2
2010-09-08  9:28     ` Avi Kivity
2010-09-08 10:17       ` Krishna Kumar2
2010-09-08 14:12         ` Arnd Bergmann
2010-09-08 16:47           ` Krishna Kumar2
2010-09-09 10:40             ` Arnd Bergmann
2010-09-09 13:19               ` Krishna Kumar2
2010-09-08  8:10 ` Michael S. Tsirkin
2010-09-08  9:23   ` Krishna Kumar2
2010-09-08 10:48     ` Michael S. Tsirkin [this message]
2010-09-08 12:19       ` Krishna Kumar2
2010-09-08 16:47   ` Krishna Kumar2
     [not found]   ` <OF70542242.6CAA236A-ON65257798.0044A4E0-65257798.005C0E7C@LocalDomain>
2010-09-09  9:45     ` Krishna Kumar2
2010-09-09 23:00       ` Sridhar Samudrala
2010-09-10  5:19         ` Krishna Kumar2
2010-09-12 11:40       ` Michael S. Tsirkin
2010-09-13  4:12         ` Krishna Kumar2
2010-09-13 11:50           ` Michael S. Tsirkin
2010-09-13 16:23             ` Krishna Kumar2
2010-09-15  5:33               ` Michael S. Tsirkin
     [not found]     ` <OF8043B2B7.7048D739-ON65257799.0021A2EE-65257799.00356B3E@LocalDomain>
2010-09-09 13:18       ` Krishna Kumar2
2010-09-08  8:13 ` Michael S. Tsirkin
2010-09-08  9:28   ` Krishna Kumar2

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=20100908104833.GJ23051@redhat.com \
    --to=mst@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=davem@davemloft.net \
    --cc=krkumar2@in.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=rick.jones2@hp.com \
    --cc=rusty@rustcorp.com.au \
    /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.