2006-11-27 00:23:08

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH 3/3] x86: when acpi_noirq is set, use mptable instead of MADT

On Sun, Nov 26, 2006 at 03:24:32PM -0800, Yinghai Lu wrote:
>

Can you resend that one cc [email protected], [email protected]
please ?

-Andi


2006-11-27 05:35:11

by Brown, Len

[permalink] [raw]
Subject: Re: [PATCH 3/3] x86: when acpi_noirq is set, use mptable instead of MADT

"acpi=noirq" and "pci=noacpi" are not reliable in IOAPIC mode --
as, by definition, they skip the processing of the ACPI interrupt itself.
On some systems this happens to work, and on some systems it doesn't --
depends on if there was an override for the SCI or if it appears as
a standard PCI interrupt.

So the bigger question is why you need these workarounds in the first place.

-Len



2006-11-27 07:37:50

by Lu, Yinghai

[permalink] [raw]
Subject: Re: [PATCH 3/3] x86: when acpi_noirq is set, use mptable instead of MADT

On 11/26/06, Len Brown <[email protected]> wrote:
>
> So the bigger question is why you need these workarounds in the first place.

in the LinuxBIOS, acpi support is there including acpi tables and dsdt
for amd chipset.
but for other chipset, I can not put dsdt there. becase we need one
clean room implementation for dsdt with those chipset.

So I have all acpi tables (SRAT, SLIT, ...) but no dsdt.
We need to use mptable instead of MADT + dsdt for io apic irq routing.

I forget to remove MADT in one test, the kernel will skip the mptable.

After look at the kernel acpi code, it turns out that
acpi_process_madt will set acpi_lapic, and acpi_ioapic. So
get_smp_config will skip the mptable.

With normal BIOS, if there is problem with DSDT, and you are trying
acpi=noirq, it means you are going to PIC mode instead of APIC mode if
you are skipping mptable.

YH