Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: ERROR: Unable to locate IOAPIC for GSI xx

519 views
Skip to first unread message

Eric W. Biederman

unread,
Jun 3, 2010, 5:10:03 AM6/3/10
to
Avinash Kurup <kurup....@gmail.com> writes:

> 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
>
>     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:

> [ 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)
> [ 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Eric W. Biederman

unread,
Jun 6, 2010, 12:00:03 AM6/6/10
to
Avinash Kurup <kurup....@gmail.com> writes:

> 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

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.

Tested-by: Avinash Kurup <kurup....@gmail.com>
Signed-off-by: "Eric W. Biederman" <ebie...@xmission.com>

---

diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 33f3563..226a6d1 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -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

unread,
Sep 30, 2010, 7:00:01 PM9/30/10
to
On 06/05/2010 08:56 PM, Eric W. Biederman wrote:
>
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index 33f3563..226a6d1 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -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

Eric W. Biederman

unread,
Oct 2, 2010, 10:50:01 AM10/2/10
to
"H. Peter Anvin" <h...@zytor.com> writes:

> On 06/05/2010 08:56 PM, Eric W. Biederman wrote:
>>
>> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
>> index 33f3563..226a6d1 100644
>> --- a/arch/x86/kernel/apic/io_apic.c
>> +++ b/arch/x86/kernel/apic/io_apic.c
>> @@ -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

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

0 new messages