Re: [PATCH RFC] x86/acpi: don't ignore I/O APICs just because there'sno local APIC

From: Jeremy Fitzhardinge
Date: Tue Jun 16 2009 - 15:38:46 EST

On 06/15/09 14:58, Eric W. Biederman wrote:
The only clean way I can see to handle this is to make xen dom0 it's own
weird separate subarch that does all of the table parsing of the
firmware tables in completely separate code. Then once we have something
that works factoring out the commonalities into a helper library for
better long term maintenance.

That seems like overkill. We can get things working under Xen with 3 changes:

All of the subtle assumptions sound like the come out differently. Which means
you can very easily start down the road of just reusing small bits and then
you find so many assumptions are different you have to scrap/replace or gunk
up with if (xen) tests.

I think we're getting off into the weeds a bit here. I'm looking at other options of how to fit Xen interrupt handling into the kernel in a clean way; we may end up with a different model from the previous patch postings (not this particular one under discussion; the ones from last month). We can reopen this discussion when I post those patches.

However, the kernel will still need information about the I/O APICs from ACPI so that it can perform basic interrupt routing for PCI devices (ie, regardless of how the interrupt gets delivered, and who programs the APIC hardware, we still need the basic information of "what io apic+pin is this PCI device connected to?"). This particular patch is my attempt to achieve this.

To be very clear. We have mechanism and policy mixed in the mptable
and related code today. While we continue to have that mixed I think
even attempting to reuse it for Xen dom0 is a horrifically bad move.

Nacked-by: "Eric W. Biederman"<ebiederm@xxxxxxxxxxxx>

The only effect of this patch is to parse the I/O APIC parts of the MADT even if it skips the local APIC parts; it causes no change in behaviour in normal circumstances (unless you actually have a physical machine with ACPI and I/O APICs but CPUs with no local APICs, which is guess is possible in principle).

Can you give an example of how mechanism and policy are mixed? In what ways could it break? Would you agree to a patch which attempts to decouple policy and mechanism to solve these problems?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at