From: Laurent V. <Lau...@bu...> - 2008-04-23 16:40:59
|
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 ? Perhaps I can swap server and client between guest and host ? > > Sorry (if it's true :) > Thank you for your help, Laurent -- ------------- Lau...@bu... --------------- "The best way to predict the future is to invent it." - Alan Kay |