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

2015-03-02 Thread Konrad Rzeszutek Wilk
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.

2015-03-02 Thread David Vrabel
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.

2015-03-02 Thread Konrad Rzeszutek Wilk
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.

2015-03-02 Thread David Vrabel
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/