
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