Am 19.02.2014 15:58, schrieb Eduardo Habkost: > When on KVM mode, enable x2apic by default on all CPU models. > > Normally we try to keep the CPU model definitions as close as the real > CPUs as possible, but x2apic can be emulated by KVM without host CPU > support for x2apic, and it improves performance by reducing APIC access > overhead. x2apic emulation is available on KVM since 2009 (Linux > 2.6.32-rc1), there's no reason for not enabling x2apic by default when > running KVM. > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > --- > hw/i386/pc_piix.c | 1 + > hw/i386/pc_q35.c | 2 ++ > target-i386/cpu.c | 1 + > 3 files changed, 4 insertions(+) > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > index dab0c78..cf12873 100644 > --- a/hw/i386/pc_piix.c > +++ b/hw/i386/pc_piix.c > @@ -260,6 +260,7 @@ static void pc_compat_1_7(QEMUMachineInitArgs *args) > { > smbios_type1_defaults = false; > gigabyte_align = false; > + x86_cpu_compat_disable_kvm_features(FEAT_1_ECX, CPUID_EXT_X2APIC); > } > > static void pc_compat_1_6(QEMUMachineInitArgs *args) > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > index a7f6260..71b05f1 100644 > --- a/hw/i386/pc_q35.c > +++ b/hw/i386/pc_q35.c > @@ -244,6 +244,8 @@ static void pc_compat_1_7(QEMUMachineInitArgs *args) > { > smbios_type1_defaults = false; > gigabyte_align = false; > + x86_cpu_compat_disable_kvm_features(FEAT_1_ECX, CPUID_EXT_X2APIC); > + > } > > static void pc_compat_1_6(QEMUMachineInitArgs *args) [snip]
Needed rebase: diff --cc hw/i386/pc_piix.c index 5011c3a,ebd442e..0000000 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@@ -266,7 -266,7 +266,8 @@@ static void pc_compat_1_7(QEMUMachineIn { smbios_type1_defaults = false; gigabyte_align = false; + option_rom_has_mr = true; + x86_cpu_compat_disable_kvm_features(FEAT_1_ECX, CPUID_EXT_X2APIC); } static void pc_compat_1_6(QEMUMachineInitArgs *args) diff --cc hw/i386/pc_q35.c index 4b0456a,71b05f1..0000000 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@@ -244,7 -244,8 +244,8 @@@ static void pc_compat_1_7(QEMUMachineIn { smbios_type1_defaults = false; gigabyte_align = false; + option_rom_has_mr = true; + x86_cpu_compat_disable_kvm_features(FEAT_1_ECX, CPUID_EXT_X2APIC); - } static void pc_compat_1_6(QEMUMachineInitArgs *args) Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg