From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O4Wrm-00065w-Vj for qemu-devel@nongnu.org; Wed, 21 Apr 2010 06:09:11 -0400 Received: from [140.186.70.92] (port=54399 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4Wrk-00063d-5i for qemu-devel@nongnu.org; Wed, 21 Apr 2010 06:09:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O4Wrb-0004Ut-Px for qemu-devel@nongnu.org; Wed, 21 Apr 2010 06:09:07 -0400 Received: from mail2.shareable.org ([80.68.89.115]:39443) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O4WrZ-0004TM-Ps for qemu-devel@nongnu.org; Wed, 21 Apr 2010 06:08:59 -0400 Date: Wed, 21 Apr 2010 11:08:40 +0100 From: Jamie Lokier Subject: Re: [Qemu-devel] Re: QEMU-KVM and video performance Message-ID: <20100421100840.GF13114@shareable.org> References: <4BCEBE5C.4020404@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4BCEBE5C.4020404@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Gerhard Wiesinger , qemu-devel@nongnu.org, kvm@vger.kernel.org Avi Kivity wrote: > On 04/19/2010 10:14 PM, Gerhard Wiesinger wrote: > >Hello, > > > >Finally I got QEMU-KVM to work but video performance under DOS is very > >low (QEMU 0.12.3 stable and QEMU GIT master branch is fast, QEMU KVM > >is slow) > > > >I'm measuring 2 performance critical video performance parameters: > >1.) INT 10h, function AX=4F05h (set same window/set window/get window) > >2.) Memory performance to segment page A000h > > > >So BIOS performance (which might be port performance to VGA > >index/value port) is about factor 5 slower, memory performance is > >about factor 100 slower. > > > >QEMU 0.12.3 and QEMU GIT performance is the same (in the measurement > >tolerance) and listed only once, QEMU KVM is much more slower (details > >see below). > > > >Test programs can be provided, source code will be release soon. > > > >Any ideas why KVM is so slow? > > 16-color vga is slow because kvm cannot map the framebuffer to the guest > (writes are not interpreted as RAM writes). 256+-color vga should be > fast, except when switching the vga window. Note it's only fast on > average, the first write into a page will be slow as kvm maps it in. I don't understand: why is 256+-colour mappable and 16-colour not mappable? Is this a case where TCG would run significantly faster for code blocks that have been detected to access the VGA memory? > Which mode are you using? > > >Any ideas for improvement? > > Currently when the physical memory map changes (which is what happens > when the vga window is updated), kvm drops the entire shadow cache. > It's possible to do this only for vga memory, but not easy. If it's a page fault handled in the kernel, I would expect it to be about as fast as those old VGA DOS-extender drivers which provide the illusion of a single flat mapping, and bank switch on page faults - multiplied by the speed of modern CPUs compared with then. For many graphics things those DOS-extender drivers worked perfectly well. If it's a trap out to qemu on every vga window change, perhaps not quite so well. -- Jamie