On Fri, Jan 27, 2012 at 14:49:45 +0100, Paolo Bonzini wrote:
QEMU supports a bunch of CPUID features that are tied to the kvm
CPUID
nodes rather than the processor's. They are "kvmclock",
"kvm_nopiodelay",
"kvm_mmu", "kvm_asyncpf". These are not known to libvirt and their
CPUID leaf might move if (for example) the Hyper-V extensions are enabled.
Hence their handling would anyway require some special-casing.
However, among these the most useful is kvmclock; an additional
"property" of this feature is that a <timer> element is a better model
than a CPUID feature.
This is what this series does.
Actually, while working on this I noticed that it is quite difficult
to have round-trip testcases involving -cpu, that can be used with
both qemuargv2xmltest and qemuxml2argvtest. This is what the first
five four patches do. The first patch is unrelated. The second patch
updates the CPU feature map with default CPUs, and is a prerequisite
for patch 3. That one makes the -cpu parsing code detect the "lm"
CPU feature, so that the guest arch is correctly set to either
i686 or x86_64.
The fifth patch is also mostly needed for testing. It notices the
default models qemu32/qemu64 and does not generate <cpu> elements;
this happens with "-cpu qemu32,-kvmclock" for example. Then, the
last two patches actually add the new feature.
Paolo Bonzini (7):
qemu: parse -enable-kvm
x86: add kvm32 and kvm64, update qemu64
Two cputests needed to be updated a bit after this 2/7 patch so I squashed
them in, updated the 7/7 commit message as I suggested in the review and
pushed the series.
Jirka