From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O4pWt-0004OH-O5 for qemu-devel@nongnu.org; Thu, 22 Apr 2010 02:04:51 -0400 Received: from [140.186.70.92] (port=43931 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O4pWr-0004O9-Th for qemu-devel@nongnu.org; Thu, 22 Apr 2010 02:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O4pWq-0001TB-Gk for qemu-devel@nongnu.org; Thu, 22 Apr 2010 02:04:49 -0400 Received: from chello084112167138.7.11.vie.surfer.at ([84.112.167.138]:49906 helo=wiesinger.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O4pWq-0001Si-0e for qemu-devel@nongnu.org; Thu, 22 Apr 2010 02:04:48 -0400 Date: Thu, 22 Apr 2010 08:04:19 +0200 (CEST) From: Gerhard Wiesinger Subject: Re: [Qemu-devel] Re: QEMU-KVM and video performance In-Reply-To: <4BCF6699.2060201@redhat.com> Message-ID: References: <4BCEBE5C.4020404@redhat.com> <20100421183357.GK27575@shareable.org> <4BCF6699.2060201@redhat.com> 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: Avi Kivity Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org On Wed, 21 Apr 2010, Avi Kivity wrote: > 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. > Yes, 256 color VGA and no bank switches involved. >> 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. > Sorry, I mixed up the numbers: 1.) QEMU-KVM: ~111k 2.) QEMU only: 500k-1Mio > Please run kvm_stat and report output for both tests to confirm. > See below. 2nd column is per second statistic when running the test. >> >> 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. Hmmm. Ok, 2 different opinions about the memory write performance: Easily or not possible? Thnx for you help so far. Ciao, Gerhard -- http://www.wiesinger.com/ ------------- kvm_stat Please mount debugfs ('mount -t debugfs debugfs /sys/kernel/debug') and ensure the kvm modules are loaded lsmod|grep -i kvm kvm_amd 38276 0 kvm 162288 1 kvm_amd mount|grep -i debug => mount -t debugfs debugfs /sys/kernel/debug int10perf: INT10h Performance tests: kvm statistics efer_reload 0 0 exits 37648629 456206 fpu_reload 8512535 455983 halt_exits 2084 0 halt_wakeup 2047 0 host_state_reload 8513213 456011 hypercalls 0 0 insn_emulation 29182065 0 insn_emulation_fail 0 0 invlpg 0 0 io_exits 8386082 455975 irq_exits 51713 214 irq_injections 21797 36 irq_window 0 0 largepages 0 0 mmio_exits 242781 0 mmu_cache_miss 150 0 mmu_flooded 0 0 mmu_pde_zapped 0 0 mmu_pte_updated 0 0 mmu_pte_write 8192 0 mmu_recycled 0 0 mmu_shadow_zapped 151 0 mmu_unsync 0 0 mmu_unsync_global 0 0 nmi_injections 0 0 nmi_window 0 0 pf_fixed 16935 0 pf_guest 0 0 remote_tlb_flush 2 0 request_irq 0 0 request_nmi 0 0 signal_exits 1 0 tlb_flush 2251 0 Running VGA memory tests in same VGA page in Video Mode VESA 101h: kvm statistics efer_reload 0 0 exits 18470836 554582 fpu_reload 2147833 3469 halt_exits 2083 0 halt_wakeup 2047 0 host_state_reload 2148186 3470 hypercalls 0 0 insn_emulation 7688203 554244 insn_emulation_fail 0 0 invlpg 0 0 io_exits 10701583 18 irq_exits 50781 321 irq_injections 25251 18 irq_window 0 0 largepages 0 0 mmio_exits 162847 3241 mmu_cache_miss 154 0 mmu_flooded 0 0 mmu_pde_zapped 0 0 mmu_pte_updated 0 0 mmu_pte_write 8192 0 mmu_recycled 0 0 mmu_shadow_zapped 155 0 mmu_unsync 0 0 mmu_unsync_global 0 0 nmi_injections 0 0 nmi_window 0 0 pf_fixed 16936 0 pf_guest 0 0 remote_tlb_flush 5 0 request_irq 0 0 request_nmi 0 0 signal_exits 1 0 tlb_flush 112 0