From: Jan Beulich Date: Tue, 25 Jun 2013 13:57:44 +0000 (+0200) Subject: VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V X-Git-Tag: 4.3.0-rc6~10 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7f2e992b824ec62a2818e64390ac2ccfbd74e6b7;p=xen.git VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V When the CPU has the necessary capabilities, having Windows use synthetic MSR reads/writes is bogus, as this still requires emulation (which is pretty much guaranteed to be slower than having the hardware carry out the operation). Signed-off-by: Jan Beulich Acked-by: Paul Durrant Acked-by: George Dunlap --- diff --git a/xen/arch/x86/hvm/viridian.c b/xen/arch/x86/hvm/viridian.c index 1ee0f7fec8..46492cbb32 100644 --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -87,8 +87,9 @@ int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax, if ( (d->arch.hvm_domain.viridian.guest_os_id.raw == 0) || (d->arch.hvm_domain.viridian.guest_os_id.fields.os < 4) ) break; - *eax = (CPUID4A_MSR_BASED_APIC | - CPUID4A_RELAX_TIMER_INT); + *eax = CPUID4A_RELAX_TIMER_INT; + if ( !cpu_has_vmx_apic_reg_virt ) + *eax |= CPUID4A_MSR_BASED_APIC; *ebx = 2047; /* long spin count */ break; }