Re: [PATCH v2] enable x2APIC without interrupt remapping under KVM

Gleb Natapov
2009-06-29T10:34:20Z

On Mon, Jun 29, 2009 at 12:22:35PM +0200, Ingo Molnar wrote:
>
> * Gleb Natapov <gleb@redhat.com> wrote:
>
> > KVM would like to provide x2APIC interface to a guest without emulating
> > interrupt remapping device. The reason KVM prefers guest to use x2APIC
> > is that x2APIC interface is better virtualizable and provides better
> > performance than mmio xAPIC interface:
> >
> > - msr exits are faster than mmio (no page table walk, emulation)
> > - no need to read back ICR to look at the busy bit
> > - one 64 bit ICR write instead of two 32 bit writes
> > - shared code with the Hyper-V paravirt interface
> >
> > Included patch changes x2APIC enabling logic to enable it even if IR
> > initialization failed, but kernel runs under KVM and no apic id is
> > greater than 255 (if there is one spec requires BIOS to move to x2apic
> > mode before starting an OS).
> >
> > Signed-off-by: Gleb Natapov <gleb@redhat.com>
> > ---
> >
> > v2:
> > Add help message to Kconfig
> > Force physical mode if IR is not available.
> >
> > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> > index d1430ef..3e5b6ea 100644
> > --- a/arch/x86/Kconfig
> > +++ b/arch/x86/Kconfig
> > @@ -260,12 +260,15 @@ config SMP
> >
> > config X86_X2APIC
> > bool "Support x2apic"
> > - depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP
> > + depends on X86_LOCAL_APIC && X86_64
>
> Have you tried to build this with X86_X2APIC set but INTR_REMAP
> disabled?
>
Yes. I notice that X86_X2APIC depends on INTR_REMAP when I did it.

--
Gleb.