qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: QEMU-KVM and video performance


From: Avi Kivity
Subject: Re: [Qemu-devel] Re: QEMU-KVM and video performance
Date: Mon, 10 May 2010 10:32:57 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4

On 05/09/2010 10:35 PM, Gerhard Wiesinger wrote:

Please run kvm_stat and report output for both tests to confirm.


See below. 2nd column is per second statistic when running the test.

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

This indicates that kvm is emulating instead of direct mapping. That's probably a bug. If you fix it, performance will increase dramatically.


Where can I start here?
Any ideas how to?

One of my ideas: Move hw/vga.c functions
vga_mem_readb
vga_mem_readw
vga_mem_readl
vga_mem_writeb
vga_mem_writew
vga_mem_writel
to KVM to avoid switching from KVM to QEMU (I can write C code even kernel but I'm not comfortable with KVM). Howto?

That is already done (generically), it's called coalesced mmio. You only have 3470 qemu exits/sec compared to 554244 kvm writes/sec.

Switching between tcg and kvm is hard, but not needed. For 256 color modes, direct map is possible and should yield good performance. Bank switching can be improved perhaps 3x, but will never be fast.

Where can I start for KVM performance for the bank switching (256 color mode)? (e.g. BIOS writes to VGA window I/O port to switch the bank)
Any ideas how to improve (architecture for the change)?

For 256 color more the first priority is to find out why direct mapping is not used. I'd suggest tracing the code that makes this decision (in hw/*vga.c) and seeing if it's right or not.

--
error compiling committee.c: too many arguments to function





reply via email to

[Prev in Thread] Current Thread [Next in Thread]