Laurent Vivier a écrit : > Anthony Liguori wrote: >> Laurent Vivier wrote: >>> Avi Kivity wrote: >>> >>>> Aurelien Jarno wrote: >>>> >>>>> >>>>> >>>>>> What is your disk image file format, or are you using a partition? >>>>>> >>>>>> >>>>> I am using a raw image file on an ext3 partition. >>>>> >>>>> >>>>> >>>>>> Do the results change (on kvm-14) if you pin the guest to a core with >>>>>> 'taskset 1 qemu ...' >>>>>> >>>>>> >>>>> Bingo. It now works even faster than kvm-13! >>>>> >>>>> real 0m22.307s >>>>> user 0m13.935s >>>>> sys 0m4.720 >>>>> >>>>> >>>>> >>>> I'm guessing this is due to the glibc aio implementation, which uses >>>> threads instead of true aio. The threads may cause the vcpu to migrate >>>> frequently from one code to another. >>>> >>>> There are two possible solutions: >>>> >>>> - use native aio from http://www.bullopensource.org/posix/. I think >>>> the aio signal patches are not yet in, so this may not work. >>>> - teach the scheduler about the cost of migrating vcpus >>>> The first approach will solve itself eventually, though slowly if the >>>> current slow rate of aio merging continues. We'll have to do the second. >>>> >>>> >>> if you prefer the first one, Sébastien will release very soon aio patches >>> for >>> 2.6.20 with an up-to-date libposix-aio. >>> >> Hi Laurent, >> >> I gave that a shot a little bit ago. Ran into two problems. >> >> 1) Couldn't avoid linking to -lrt as QEMU uses time functions from it. >> 2) While I could get things compiling (with patches), QEMU would SEGV >> almost immediately. >> >> Could you guys maybe give compiling QEMU w/libposix-aio a shot? I'm >> really interested to see if it makes a difference. >> >> Regards, >> >> Anthony Liguori >> >>> [advertising] Keep an eye on the bullopensource website. [/advertising] >>> :-P >>> >>> Regards, >>> Laurent > > OK, I didn' have time to test the performance of the result, but you can find > attached some patches to enable libposix-aio with kvm-14. > > first take last patches for linux-2.6.20 and libposix-aio-.0.8.2 from website > : > > http://sourceforge.net/projects/paiol > > if you are using AMD64, you must patch libposix-aio because there is a little > problem remaining to detect lio_submit syscall (first attachment) > > then apply following patch to kvm-14 (second attachment). > > It works fine on my system except when I use "-hda /dev/sdb" : qemu crashes > just > after mounting filesystems when "init" tries to set kernel parameters with > "sysctl" (I use a debian 4.0). If I boot in emergency mode, mounting manually > filesystems and running manually sysctl, all works fine. It looks like a > synchronization problem. > > There are remaining issues : libposix-aio uses kernel AIO, so files must be > opened using O_DIRECT and buffers must be aligned. libposix-aio is able to > manage other cases but this has a performance cost. > > Aurélien, do you have any time to test this on your system ?
It took me some time to test it, I was not at home and I prefer to be near the machine when I change the kernel! I have just tried your patches, and I can say it works. I get the same times (minor measurement issues) as when using kvm without your patches and with taskset. Thanks a lot! Would it be possible to merge the kvm part, and maybe to send it to the qemu mailing list? Regards, Aurelien -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `- people.debian.org/~aurel32 | www.aurel32.net ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ kvm-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/kvm-devel
