Am 27.11.2014 um 10:50 hat Peter Lieven geschrieben: > On 26.11.2014 15:46, Kevin Wolf wrote: > >This improves the performance of requests because an ACB doesn't need to > >be allocated on the heap any more. It also makes the code nicer and > >smaller. > > > >As a side effect, the codepath taken by aio=threads is changed to use > >paio_submit_co(). This doesn't change the performance at this point. > > > >Results of qemu-img bench -t none -c 10000000 [-n] /dev/loop0: > > > > | aio=native | aio=threads > > | before | with patch | before | with patch > >------+----------+------------+----------+------------ > >run 1 | 29.921s | 26.932s | 35.286s | 35.447s > >run 2 | 29.793s | 26.252s | 35.276s | 35.111s > >run 3 | 30.186s | 27.114s | 35.042s | 34.921s > >run 4 | 30.425s | 26.600s | 35.169s | 34.968s > >run 5 | 30.041s | 26.263s | 35.224s | 35.000s > > > >TODO: Do some more serious benchmarking in VMs with less variance. > >Results of a quick fio run are vaguely positive. > > I still see the main-loop spun warnings with this patches applied to master. > It wasn't there with the original patch from August. > > ~/git/qemu$ ./qemu-img bench -t none -c 10000000 -n /dev/ram1 > Sending 10000000 requests, 4096 bytes each, 64 in parallel > main-loop: WARNING: I/O thread spun for 1000 iterations > Run completed in 31.947 seconds.
Yes, I still need to bisect that. The 'qemu-img bench' numbers above are actually also from August, we have regressed meanwhile by about a second, and I also haven't found the reason for that yet. Kevin