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
--
http://www.wiesinger.com/
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html