From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O4gyr-0007JI-GJ for qemu-devel@nongnu.org; Wed, 21 Apr 2010 16:57:09 -0400 Received: from [140.186.70.92] (port=58898 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4gyp-0007Hw-Rg for qemu-devel@nongnu.org; Wed, 21 Apr 2010 16:57:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O4gyl-0005Te-2V for qemu-devel@nongnu.org; Wed, 21 Apr 2010 16:57:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13613) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O4gyk-0005TX-OH for qemu-devel@nongnu.org; Wed, 21 Apr 2010 16:57:03 -0400 Message-ID: <4BCF6699.2060201@redhat.com> Date: Wed, 21 Apr 2010 23:56:57 +0300 From: Avi Kivity MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: QEMU-KVM and video performance References: <4BCEBE5C.4020404@redhat.com> <20100421183357.GK27575@shareable.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerhard Wiesinger Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org On 04/21/2010 09:50 PM, Gerhard Wiesinger wrote: >>> I don't think changing VGA window is a problem because there are >>> 500.000-1Mio changes/s possible. >> >> 1MB/s, 500k-1M changes/s.... Coincidence? Is it taking a page fault >> or trap on every write? > > > To clarify: > Memory Performance writing to segmen A000 is about 1MB/st. That indicates a fault every write (assuming 8-16 bit writes). If you're using 256 color vga and not switching banks, this indicates a bug. > Calling INT 10 set/get window function with different windows (e.g. > toggling between window page 0 and 1) is about 500.000 to 1Mio > function calls per second. That's suprisingly fast. I'd expect 100-200k/sec. Please run kvm_stat and report output for both tests to confirm. > > To get real good VGA performance both parameters should be: > About >50MB/s for writes to segment A000 > ~500.000 bank switches per second. First should be doable easily, second is borderline. > 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. Code can run in either qemu or kvm, not both. You can switch between them based on access statistics (early versions of qemu-kvm did that, without the statistics part), but this isn't trivial. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.