Skip to contentSkip to conversation

ERROR: Unable to locate IOAPIC for GSI xx

PATCH In review Eric W. Biederman 2 participants 4 messages Jun 3, 2010 – Oct 2, 2010 1 message not in the archive x86

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
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

#2 lore raw

PATCH 1/1 Skip looking for ioapic overrides when ioapics are not present

In reply to a message not in the archive
Quoted 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
index 33f3563..226a6d1 100644
@@ -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;
 
#3 lore raw

Re: [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
index 33f3563..226a6d1 100644

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

#4 lore raw

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 -0
index 33f3563..226a6d1 100644

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.

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