From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754463AbbCBOXJ (ORCPT ); Mon, 2 Mar 2015 09:23:09 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:39410 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753960AbbCBOXG (ORCPT ); Mon, 2 Mar 2015 09:23:06 -0500 Date: Mon, 2 Mar 2015 09:22:53 -0500 From: Konrad Rzeszutek Wilk To: David Vrabel Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com Subject: Re: [Xen-devel] [PATCH] xen, apic: Setup our own APIC driver and validator for APIC IDs. Message-ID: <20150302142253.GA3418@l.oracle.com> References: <1425071669-9290-1-git-send-email-konrad.wilk@oracle.com> <54F44854.5070006@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54F44854.5070006@citrix.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Source-IP: acsinet22.oracle.com [141.146.126.238] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 02, 2015 at 11:24:04AM +0000, 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