From: Laurent V. <Lau...@bu...> - 2008-04-23 18:54:37
|
Le mercredi 23 avril 2008 à 11:48 -0500, Anthony Liguori a écrit : > Laurent Vivier wrote: > > Le mercredi 23 avril 2008 à 19:25 +0300, Avi Kivity a écrit : > > > >> 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. > >> > > > > How can I check that ? How can I measure latency ? > > > > ping (from guest to host) I have 40 ms instead of 0.09 ms, so Avi you are right. Laurent -- ------------- Lau...@bu... --------------- "The best way to predict the future is to invent it." - Alan Kay |