> 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/
> 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;
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
> 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