ERROR: Unable to locate IOAPIC for GSI xx
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 13 lines · Avinash Kurup
Hi Eric,
I get the following errors while booting into 2.6.35-rc1. I did not get these in 2.6.34 . The computer however boots and works fine, So its not serious but the following errors are displayed in dmesg.[ 0.089969] ERROR: Unable to locate IOAPIC for GSI 13 [ 0.090556] ERROR: Unable to locate IOAPIC for GSI 8 [ 0.091104] ERROR: Unable to locate IOAPIC for GSI 12 [ 0.091375] ERROR: Unable to locate IOAPIC for GSI 1 [ 0.093195] ERROR: Unable to locate IOAPIC for GSI 4 [ 0.094342] ERROR: Unable to locate IOAPIC for GSI 10 [ 0.096335] ERROR: Unable to locate IOAPIC for GSI 6
Quoted 1 line
I bisected the problem to this commit.
Can I get a full boot log?
It sounds like this would easily be triggered by one of my patches, I am dubious about the particular patch you point out. As that only adds a new function but does not call it.
There should be boot lines that say something like:
Quoted 5 lines
[ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
Quoted 8 lines
[ 0.000000] ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 4, version 0, address 0xfec00000, GSI 0-23 [ 0.000000] ACPI: IOAPIC (id[0x05] address[0xdfefc000] gsi_base[24]) [ 0.000000] IOAPIC[1]: apic_id 5, version 0, address 0xdfefc000, GSI 24-47 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: BIOS IRQ0 pin2 override ignored. [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: IRQ9 used by override.
I would like to look at those because they should tell the story of why you can not find an IOAPIC for your GSIs.
It is possible that the explanation will simply be that the bug I fixed made those GSIs usable (to linux) on your platform for the first time.
What hardware are you seeing this on?
Eric
PATCH 1/1 Skip looking for ioapic overrides when ioapics are not present
In reply to a message not in the archiveQuoted 5 lines · Avinash Kurup
Hi Eric,
I get the following errors while booting into 2.6.35-rc1. I did not get these in 2.6.34 . The computer however boots and works fine, So its not serious but the following errors are displayed in dmesg.
Quoted 7 lines
[ 0.089969] ERROR: Unable to locate IOAPIC for GSI 13 [ 0.090556] ERROR: Unable to locate IOAPIC for GSI 8 [ 0.091104] ERROR: Unable to locate IOAPIC for GSI 12 [ 0.091375] ERROR: Unable to locate IOAPIC for GSI 1 [ 0.093195] ERROR: Unable to locate IOAPIC for GSI 4 [ 0.094342] ERROR: Unable to locate IOAPIC for GSI 10 [ 0.096335] ERROR: Unable to locate IOAPIC for GSI 6
The new warning originates from acpi_get_override_irq, which I changed to use helper functions that warn when they fail.
When IOAPICs and ACPI are enabled in a kernel and run on ACPI hardware that doesn't use the ioapics the pnp acpi code calls this function, looking for ACPI irq overrides. ACPI irq overrides exist only in the ioapic case so this function will never succeed. So make the function fail fast so we don't call into help functions that legitimately complain when they fail.
---
arch/x86/kernel/apic/io_apic.c +3 -0
@@ -4066,6 +4066,9 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) {int ioapic, pin, idx; +if (acpi_irq_model !=ACPI_IRQ_MODEL_IOAPIC ) +return -1 ; +if (skip_ioapic_setup)return -1 ;
H. Peter Anvin
reviewerRe: [PATCH] Skip looking for ioapic overrides when ioapics are not present
Quoted 6 lines · Eric W. Biederman
arch/x86/kernel/apic/io_apic.c +0
-0
arch/x86/kernel/apic/io_apic.c int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) · line 4074
Quoted 9 lines
arch/x86/kernel/apic/io_apic.c +3
-0@@ -4066,6 +4066,9 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) {int ioapic, pin, idx; +if (acpi_irq_model !=ACPI_IRQ_MODEL_IOAPIC ) +return -1 ; +if (skip_ioapic_setup)return -1 ;
I was just poked about this patch... it doesn't build "make allnoconfig" on x86-64.
This is also a bugzilla ticket now:
https://bugzilla.kernel.org/show_bug.cgi?id=17772
-hpa
Re: [PATCH] Skip looking for ioapic overrides when ioapics are not present
Quoted 20 lines · H. Peter Anvin
Quoted 6 lines · Eric W. Biederman
arch/x86/kernel/apic/io_apic.c +0
-0arch/x86/kernel/apic/io_apic.c int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) · line 4074
Quoted 9 lines
arch/x86/kernel/apic/io_apic.c +3
-0@@ -4066,6 +4066,9 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity) {int ioapic, pin, idx; +if (acpi_irq_model !=ACPI_IRQ_MODEL_IOAPIC ) +return -1 ; +if (skip_ioapic_setup)return -1 ;I was just poked about this patch... it doesn't build "make allnoconfig" on x86-64.
Quoted 2 lines
This is also a bugzilla ticket now:
https://bugzilla.kernel.org/show_bug.cgi?id=17772
That sucks. Do we need to move this function into an acpi specific file to pass allnonconfig?
Barring crazy build issues the fix is right.
I'm not certain when I will get a chance to look at build issues as my load spiked considerably.
Eric