public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@qumranet.com>
To: Laurent Vivier <Laurent.Vivier@bull.net>
Cc: kvm-devel@lists.sourceforge.net
Subject: Re: [PATCH 0/2] Batch writes to MMIO
Date: Wed, 23 Apr 2008 19:25:55 +0300	[thread overview]
Message-ID: <480F6313.4060106@qumranet.com> (raw)
In-Reply-To: <1208967864.4281.36.camel@frecb07144>

Laurent Vivier wrote:
> Le mercredi 23 avril 2008 à 10:10 -0500, Anthony Liguori a écrit :
> [...]
>   
>> The ne2k is pretty mmio heavy.  You should be able to observe a boost 
>> with something like iperf (guest=>host) I would think if this is a real 
>> savings.
>>     
>
> I like your advices :-D
>
> I use iperf with e1000 emulation and a slightly modified patch (to
> detect MMIO write in a loop), server is on the host, client on the
> guest, with default values.
>
> RESULT WITHOUT BATCHING:
>
> [  4]  0.0-10.0 sec    235 MBytes    197 Mbits/sec
> [  5]  0.0-10.0 sec    194 MBytes    163 Mbits/sec
> [  4]  0.0-10.0 sec    185 MBytes    155 Mbits/sec
> [  5]  0.0-10.0 sec    227 MBytes    190 Mbits/sec
> [  4]  0.0-10.0 sec    196 MBytes    164 Mbits/sec
> [  5]  0.0-10.0 sec    194 MBytes    163 Mbits/sec
> [  4]  0.0-10.0 sec    184 MBytes    154 Mbits/sec
>
> RESULT WITH BATCHING:
>
> ------------------------------------------------------------
> Server listening on TCP port 5001
> TCP window size: 85.3 KByte (default)
> ------------------------------------------------------------
> [  4]  0.0-10.0 sec    357 MBytes    299 Mbits/sec
> [  5]  0.0-10.1 sec    418 MBytes    347 Mbits/sec
> [  4]  0.0-10.0 sec    408 MBytes    342 Mbits/sec
> [  5]  0.0-10.0 sec    422 MBytes    353 Mbits/sec
> [  4]  0.0-10.1 sec    436 MBytes    362 Mbits/sec
> [  5]  0.0-10.0 sec    416 MBytes    348 Mbits/sec
> [  4]  0.0-10.0 sec    431 MBytes    361 Mbits/sec
>
> Well, it's nice ?
>   

It's too good to be true.

I think we're seeing two bugs cancel each other out, resulting in a 
performance gain.  Linux doesn't know how to queue outgoing packets, so 
it bangs on the mmio that starts the transmit after every packet.  mmio 
batching doesn't know that this mmio register is critical for latency, 
so it queues it up.  The result is that you you get not just mmio 
batching, but also packet batching!  Which dramatically improves 
performace at the expense of latency.


Sorry (if it's true :)

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

  reply	other threads:[~2008-04-23 16:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-23 13:07 [PATCH 0/2] Batch writes to MMIO Laurent Vivier
2008-04-23 13:07 ` [PATCH 1/2] kvm: " Laurent Vivier
2008-04-23 13:07   ` [PATCH 2/2] kvm-userspace: " Laurent Vivier
2008-04-23 14:31   ` [PATCH 1/2] kvm: " Avi Kivity
2008-04-23 14:59     ` Laurent Vivier
2008-04-23 15:04       ` Avi Kivity
2008-04-23 16:53   ` Anthony Liguori
2008-04-23 14:05 ` [PATCH 0/2] " Avi Kivity
2008-04-23 14:22   ` Laurent Vivier
2008-04-23 14:40     ` Avi Kivity
2008-04-23 15:10       ` Anthony Liguori
2008-04-23 15:12         ` Avi Kivity
2008-04-23 15:47           ` Anthony Liguori
2008-04-23 17:13             ` Avi Kivity
2008-04-23 16:24         ` Laurent Vivier
2008-04-23 16:25           ` Avi Kivity [this message]
2008-04-23 16:41             ` Laurent Vivier
2008-04-23 16:48               ` Anthony Liguori
2008-04-23 16:51                 ` Avi Kivity
2008-04-23 18:54                 ` Laurent Vivier

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=480F6313.4060106@qumranet.com \
    --to=avi@qumranet.com \
    --cc=Laurent.Vivier@bull.net \
    --cc=kvm-devel@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox