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

Gerhard Wiesinger
2010-04-21T19:10:14Z

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

--