From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O4fJB-0001pH-NJ for qemu-devel@nongnu.org; Wed, 21 Apr 2010 15:10:01 -0400 Received: from [140.186.70.92] (port=55719 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4fJA-0001ny-5A for qemu-devel@nongnu.org; Wed, 21 Apr 2010 15:10:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O4fJ8-0006mz-Cx for qemu-devel@nongnu.org; Wed, 21 Apr 2010 15:09:59 -0400 Received: from chello084112167138.7.11.vie.surfer.at ([84.112.167.138]:43240 helo=wiesinger.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O4fJ7-0006mg-Vd for qemu-devel@nongnu.org; Wed, 21 Apr 2010 15:09:58 -0400 Date: Wed, 21 Apr 2010 21:08:58 +0200 (CEST) From: Gerhard Wiesinger Subject: Re: [Qemu-devel] Re: QEMU-KVM and video performance In-Reply-To: <20100421185322.GN27575@shareable.org> Message-ID: References: <4BCEBE5C.4020404@redhat.com> <20100421183357.GK27575@shareable.org> <20100421185322.GN27575@shareable.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jamie Lokier Cc: Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org On Wed, 21 Apr 2010, Jamie Lokier wrote: > Gerhard Wiesinger wrote: >>>> Would it be possible to handle these writes through QEMU directly >>>> (without >>>> KVM), because performance is there very well (looking at the code there >>>> is some pointer arithmetic and some memory write done)? >>> >>> I've noticed extremely slow VGA performance too, when installing OSes. >>> It makes the difference between installing in a few minutes, and >>> installing taking hours - just because of the slow VGA. >>> >>> So generally I use qemu for installing old versions of Windows, then >>> change to KVM to run them after installing. >>> >>> Switching between KVM and qemu automatically based on guest code >>> behaviour, and making both memory models and device models compatible >>> at run time, is a difficult thing. I guess it's not worth the >>> difficulty just to speed up VGA. >> >> I think this is very easy to distingish: >> 1.) VGA Segment A000 is legacy and should be handled through QEMU >> and not through KVM (because it is much more faster). Also 16 color modes >> should be fast enough there. >> 2.) All other flat PCI memory accesses should be handled through KVM >> (there is a specialized driver loaded for that PCI device in the non >> legacy OS). >> >> Is that easily possible? > > No it isn't. Distingushing addresses is trivial. You've ignored the > hard part, which is switching between different virtualisation > architectures... Hmmm. I'm very new to QEMU and KVM but at least accessing the virtual HW of QEMU even from KVM must be possible (e.g. memory and port accesses are done on nearly every virtual device) and therefore I'm ending in C code in the QEMU hw/*.c directory. Therefore also the VGA memory area should be able to be accessable from KVM but with the specialized and fast memory access of QEMU. Am I missing something? BTW: Still not clear why performance is low with KVM since there are no window changes in the testcase involved which could cause a (slow) page fault. Thnx. Ciao, Gerhard -- http://www.wiesinger.com/