On Mon, Feb 07, 2022 at 06:21:00PM +0000, Jane Malalane wrote: > diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c > index 7ab15e07a0..4060aef1bd 100644 > --- a/xen/arch/x86/hvm/vmx/vmcs.c > +++ b/xen/arch/x86/hvm/vmx/vmcs.c > @@ -343,6 +343,15 @@ static int vmx_init_vmcs_config(bool bsp) > MSR_IA32_VMX_PROCBASED_CTLS2, &mismatch); > } > > + /* Check whether hardware supports accelerated xapic and x2apic. */ > + if ( bsp ) > + { > + assisted_xapic_available = cpu_has_vmx_virtualize_apic_accesses; > + assisted_x2apic_available = (cpu_has_vmx_apic_reg_virt || > + cpu_has_vmx_virtual_intr_delivery) && > + cpu_has_vmx_virtualize_x2apic_mode;
I've been think about this, and it seems kind of asymmetric that for xAPIC mode we report hw assisted support only with virtualize_apic_accesses available, while for x2APIC we require virtualize_x2apic_mode plus either apic_reg_virt or virtual_intr_delivery. I think we likely need to be more consistent here, and report hw assisted x2APIC support as long as virtualize_x2apic_mode is available. This will likely have some effect on patch 2 also, as you will have to adjust vmx_vlapic_msr_changed. Thanks, Roger.