WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] CONFIG_SPARSE_IRQ breaks single VCPU domain 0 between xe

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] CONFIG_SPARSE_IRQ breaks single VCPU domain 0 between xen/master and xen/next
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Fri, 26 Feb 2010 09:28:49 -0800
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Xiantao Zhang <xiantao.zhang@xxxxxxxxx>
Delivery-date: Fri, 26 Feb 2010 09:32:28 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1267201049.11737.12593.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1267184533.11737.12277.camel@xxxxxxxxxxxxxxxxxxxxxx> <1267185902.11737.12315.camel@xxxxxxxxxxxxxxxxxxxxxx> <1267201049.11737.12593.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc12 Lightning/1.0b2pre Thunderbird/3.0.1
On 02/26/2010 08:17 AM, Ian Campbell wrote:
On Fri, 2010-02-26 at 12:05 +0000, Ian Campbell wrote:
Which looks might suspicious to me... However simply removing that
causes acpi_probe_gsi to return 16 (instead of 24) and I run out of
interrupts for use by real hardware (specifically my disk controller).
If I hack acpi_probe_gsi to return at least 24 everything works OK so
it seems the error is only at the detection stage.
So this seems to all relate to the removal of the xen_io_apic_(read|
write) stuff.

Yep.

I can see that the GSI routing stuff is effective replaced by
PHYSDEVOP_setup_gsi but I don't see what replaces the IO APIC
enumeration. We still map a dummy page for FIX_IO_ACPI_* and
io_apic_(read|write) now go at that direct (and therefore get 0s back).
If the intention is not to enumerate the IO APICs in this way then what
seems to be missing is the part which discovers the number of GSIs in
the system and I'm not sure what is supposed to replace that.

Nothing, as yet. The "+= 256" is definitely a hack, and we need to come up with a sound way to resolve it. There seem to be three possibilities:

   * Let the kernel see the IO APICs for the purposes of enumeration,
     but nothing else (which seems to defeat the point of the exercise)
   * Make up a fake Xen IO APIC mapping which just contains static
     state for the config registers. (I don't think this will work,
     because the IO APIC registers aren't simply memory-mapped)
   * Add an interface to Xen so it can return the results of its own IO
     APIC enumeration, and use that in dom0.  I think this is probably
     most consistent with the idea that "Xen owns all the APICs", but
     I'm not sure how to wire it into the Linux side.

Ideally we should also be able to get rid of the fake IO APIC mappings because nothing in Linux will even attempt to access them, but I suspect in practice it will be easier to let some probe code poke at them and find they're not there rather than try and disable the probe.

I think Xiantao has some thoughts on this too.

    J

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel