Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs.

From: David Vrabel
Date: Mon Mar 02 2015 - 06:24:20 EST


On 27/02/15 21:14, Konrad Rzeszutek Wilk wrote:
> Via CPUID masking and the different apic-> overrides we
> effectively make PV guests only but with the default APIC
> driver. That is OK as an PV guest should never access any
> APIC registers. However, the APIC is also used to limit the
> amount of CPUs if the APIC IDs are incorrect - and since we
> mask the x2APIC from the CPUID - any APIC IDs above 0xFF
> are deemed incorrect by the default APIC routines.
>
> As such add a new routine to check for APIC ID which will
> be only used if the CPUID (native one) tells us the system
> is using x2APIC.

I was applying this but it breaks the build.

arch/x86/built-in.o:(.data+0x2a28): undefined reference to
`xen_send_IPI_mask'
arch/x86/built-in.o:(.data+0x2a30): undefined reference to
`xen_send_IPI_mask_allbutself'
arch/x86/built-in.o:(.data+0x2a38): undefined reference to
`xen_send_IPI_allbutself'
arch/x86/built-in.o:(.data+0x2a40): undefined reference to
`xen_send_IPI_all'
arch/x86/built-in.o:(.data+0x2a48): undefined reference to
`xen_send_IPI_self'

There are some minor things that I was going to fix up (see below).

I also found the commit message a bit garbled so rewrote it to:

x86/xen: Provide a "Xen PV" APIC driver to support >255 VCPUs

Instead of mangling the default APIC driver, provide a Xen PV guest
specific one that explicitly provides appropriate methods.

This allows use to report that all APIC IDs are valid, allowing dom0
to boot with more than 255 VCPUs.

Since the probe order of APIC drivers is link dependent, we add in an
late probe function to change to the Xen PV if it hadn't been done
during bootup.


> +static u32 xen_safe_apic_wait_icr_idle(void)
> +{
> + return 0;
> +}
> +
> +

Extra blank line.

> +static int probe_xen(void)

xen_apic_probe_pv

> +static struct apic xen_apic = {

static struct apic xen_pv_apic

> +void __init xen_apic_check(void)

static

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/