Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs.
On Mon, Mar 02, 2015 at 11:24:04AM +, David Vrabel wrote: > 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. Could you send me your .config please. > > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs.
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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs.
On Mon, Mar 02, 2015 at 11:24:04AM +, David Vrabel wrote: 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. Could you send me your .config please. 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs.
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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/