This is the approach I believe was agreed upon during the last QEMU developers conf call (sorry I didn't join, the meeting timezone change confused me).
Some may notice that representing this new behavior using solely default values on CPU properties may be a little difficult. Making it possible to replace x86_cpu_compat_disable_kvm_features() with compat_props entries may be an interesting problem, too. Eduardo Habkost (3): target-i386: Make kvm_default_features an array target-i386: Introduce x86_cpu_compat_disable_kvm_features() target-i386: Enable x2apic by default on KVM hw/i386/pc_piix.c | 7 ++++--- hw/i386/pc_q35.c | 2 ++ target-i386/cpu.c | 20 +++++++++++++++----- target-i386/cpu.h | 4 ++-- 4 files changed, 23 insertions(+), 10 deletions(-) -- 1.8.5.3