2015-08-31 19:21:16

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: [PATCH RFC Linux] x86/xen: allow using x2APIC under Xen without CONFIG_XEN enabled

On 08/20/2015 08:04 AM, Jan Beulich wrote:
> While commit 4cca6ea04d31c claims to not have any functional effect on
> Xen, this isn't the case: Before that change, kernels built without
> CONFIG_XEN_PVHVM (a dependency which meanwhile became just CONFIG_XEN)
> were able to run in x2APIC mode just fine. Restore that behavior.
>
> This, however, still doesn't fix the case where CONFIG_HYPERVISOR_GUEST
> is not enabled, but I suppose this may be regarded as intentional.
>
> Signed-off-by: Jan Beulich<[email protected]>
> ---
> The patch is RFC solely because the way the issue gets fixed doesn't
> look very neat, but I couldn't figure out a better way.

(+ x86 maintainers)

Can we provide something like xen_stub.c (that will have its own
x86_hyper ops, probably only x2apic_available and maybe detect) which is
built when !CONFIG_XEN?

Otherwise I see little reason to keep x2apic_available op and we should
revert the portion of 4cca6ea04d31c that introduced it.

-boris

> ---
> arch/x86/kernel/cpu/hypervisor.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> --- 4.2-rc7/arch/x86/kernel/cpu/hypervisor.c
> +++ 4.2-rc7-x86-xen-x2apic-available/arch/x86/kernel/cpu/hypervisor.c
> @@ -81,6 +81,10 @@ void __init init_hypervisor_platform(voi
>
> bool __init hypervisor_x2apic_available(void)
> {
> +#ifndef CONFIG_XEN
> + if (xen_x2apic_para_available())
> + return true;
> +#endif
> return x86_hyper &&
> x86_hyper->x2apic_available &&
> x86_hyper->x2apic_available();
>
>
>