Re: [PATCH] KVM: SVM: compile out AVIC if !CONFIG_X86_LOCAL_APIC

From: Paolo Bonzini
Date: Tue Jun 14 2016 - 17:22:31 EST




----- Original Message -----
> From: "Suravee Suthikulanit" <suravee.suthikulpanit@xxxxxxx>
> To: "Paolo Bonzini" <pbonzini@xxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, kvm@xxxxxxxxxxxxxxx
> Cc: rkrcmar@xxxxxxxxxx
> Sent: Tuesday, June 14, 2016 8:20:30 PM
> Subject: Re: [PATCH] KVM: SVM: compile out AVIC if !CONFIG_X86_LOCAL_APIC
>
> Hi Paolo,
>
> On 6/14/2016 11:40 AM, Paolo Bonzini wrote:
> > AVIC needs __default_cpu_present_to_apicid. Stub out all functions
> > that use it, and disable the module parameter, if Linux is
> > compiled without local APIC support.
>
> I think you are right that we should disable AVIC #ifndef
> CONFIG_X86_LOCAL_APIC. However, do you think we should just use
> default_cpu_present_to_apicid() instead of the
> __default_cpu_present_to_apicid()?

I'm not sure why that would help? default_cpu_present_to_apicid
is also declared only if CONFIG_X86_LOCAL_APIC is defined.

> As for disabling AVIC, I think we can also do:
>
> if (!IS_ENABLED(CONFIG_X86_LOCAL_APIC))
> avic = false;

Yes, we'll need to do that once AVIC is enabled by default; or

static bool avic = IS_ENABLED(CONFIG_X86_LOCAL_APIC);

In any case the module parameter must be hidden if there's no
support in the kernel for the local APIC.

Paolo