From: ebiederm@xmission.com (Eric W. Biederman)
To: Yinghai Lu <yinghai@kernel.org>
Cc: Meelis Roos <mroos@linux.ee>,
Linux Kernel list <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: 2.6.35-rc* regression: ERROR: Unable to locate IOAPIC for GSI *
Date: Thu, 08 Jul 2010 13:59:57 -0700 [thread overview]
Message-ID: <m1k4p5d702.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTikYc5N5ihRBJI_n3yGfcRxjplxbYGtGzJZ1ufzc@mail.gmail.com> (Yinghai Lu's message of "Thu\, 8 Jul 2010 13\:53\:59 -0700")
Yinghai Lu <yinghai@kernel.org> writes:
> On Thu, Jul 8, 2010 at 1:27 PM, Yinghai Lu <yinghai@kernel.org> wrote:
>> On Thu, Jul 8, 2010 at 6:53 AM, Meelis Roos <mroos@linux.ee> wrote:
>>> Just tried 2.6.35-rc4-00086-g2aa72f6 on Celeron 900 + i815 chipset PC.
>>> I get these errors during bootup, and all interrupts become XT-PIC:
>>>
>>> [ 0.087302] pnp: PnP ACPI init
>>> [ 0.087482] ACPI: bus type pnp registered
>>> [ 0.087999] ERROR: Unable to locate IOAPIC for GSI 8
>>> [ 0.087999] ERROR: Unable to locate IOAPIC for GSI 13
>>> [ 0.087999] ERROR: Unable to locate IOAPIC for GSI 12
>>> [ 0.088091] ERROR: Unable to locate IOAPIC for GSI 1
>>> [ 0.089013] ERROR: Unable to locate IOAPIC for GSI 6
>>> [ 0.090612] ERROR: Unable to locate IOAPIC for GSI 4
>>> [ 0.092235] ERROR: Unable to locate IOAPIC for GSI 3
>>> [ 0.094382] ERROR: Unable to locate IOAPIC for GSI 7
>>> [ 0.097470] pnp: PnP ACPI: found 13 devices
>>> [ 0.097625] ACPI: ACPI bus type pnp unregistered
>>>
>>> 2.6.35-rc2-00001-g386f40c behaves the same.
>>>
>>> 2.6.34 worked fine, it reports just
>>> [ 0.104513] pnp: PnP ACPI init
>>> [ 0.104683] ACPI: bus type pnp registered
>>> [ 0.116002] pnp: PnP ACPI: found 13 devices
>>> [ 0.116158] ACPI: ACPI bus type pnp unregistered
>>
>> Do you have bootlog for 2.6.34 with "debug apic=debug"?
>>
>>>
>>> Will bisect but it takes some time.
>>>
>>> Full dmesg:
>>> [ 0.000000] ACPI: RSDP 000ff980 00014 (v00 AMI )
>>> [ 0.000000] ACPI: RSDT 1fff0000 0002C (v01 D815EA D815EEA2 20021106 MSFT 00001011)
>>> [ 0.000000] ACPI: FACP 1fff1000 00074 (v01 D815EA EA81510A 20021106 MSFT 00001011)
>>> [ 0.000000] ACPI: DSDT 1ffe0000 030E4 (v01 D815E2 EA81520A 00000023 MSFT 0100000B)
>>> [ 0.000000] ACPI: FACS 1fff8000 00040
>>> [ 0.000000] ACPI: SSDT 1ffe30e4 00035 (v01 D815EA EA81510A 00000015 MSFT 0100000B)
>>
>> no MADT
>>
>>> [ 0.000000] ACPI: PM-Timer IO Port: 0x408
>>> [ 0.000000] Found and enabled local APIC!
>>> [ 0.000000] nr_irqs_gsi: 16
>>
>>> [ 0.021087] Enabling APIC mode: Flat. Using 0 I/O APICs
>> no io apic.
>
> related commit:
>
> commit 9a0a91bb56d2915cdb8585717de38376ad20fef9
> Author: Eric W. Biederman <ebiederm@xmission.com>
> Date: Tue Mar 30 01:07:03 2010 -0700
>
> x86, acpi/irq: Teach acpi_get_override_irq to take a gsi not an isa_irq
>
> In perverse acpi implementations the isa irqs are not identity mapped
> to the first 16 gsi. Furthermore at least the extended interrupt
> resource capability may return gsi's and not isa irqs. So since
> what we get from acpi is a gsi teach acpi_get_overrride_irq to
> operate on a gsi instead of an isa_irq.
>
> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
> LKML-Reference: <1269936436-7039-2-git-send-email-ebiederm@xmission.com>
> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
>
> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
> index 127b871..73ec928 100644
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -4082,22 +4082,27 @@ int __init io_apic_get_version(int ioapic)
> return reg_01.bits.version;
> }
>
> -int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
> +int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity)
> {
> - int i;
> + int ioapic, pin, idx;
>
> if (skip_ioapic_setup)
> return -1;
>
> - for (i = 0; i < mp_irq_entries; i++)
> - if (mp_irqs[i].irqtype == mp_INT &&
> - mp_irqs[i].srcbusirq == bus_irq)
> - break;
> - if (i >= mp_irq_entries)
> + ioapic = mp_find_ioapic(gsi);
> + if (ioapic < 0)
> + return -1;
> +
> + pin = mp_find_ioapic_pin(ioapic, gsi);
> + if (pin < 0)
> + return -1;
> +
> + idx = find_irq_entry(ioapic, pin, mp_INT);
> + if (idx < 0)
> return -1;
>
> - *trigger = irq_trigger(i);
> - *polarity = irq_polarity(i);
> + *trigger = irq_trigger(idx);
> + *polarity = irq_polarity(idx);
> return 0;
> }
>
>
> Meelis' system doesn't have madt and mptable.
>
> and eric patch change to call mp_find_ioapic, and mp_find_ioapic_pin.
>
> so could just check
>
> if (nr_ioapics < 1)
> return -1;
>
> in acpi_get_override_irq()
But we should check:
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
return -1;
As I posted several weeks ago. We want to complain if we have
no io_apics and we are in ioapic_mode. We don't want to do anything
if we aren't in io_apic mode.
Eric
next prev parent reply other threads:[~2010-07-08 21:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-08 13:53 Meelis Roos
2010-07-08 20:27 ` Yinghai Lu
2010-07-08 20:53 ` Yinghai Lu
2010-07-08 20:59 ` Eric W. Biederman [this message]
2010-07-08 21:08 ` Yinghai Lu
2010-07-14 11:43 ` Meelis Roos
2010-07-08 22:24 ` Meelis Roos
2010-07-09 7:26 ` Ingo Molnar
2010-07-09 10:02 ` Meelis Roos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1k4p5d702.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mroos@linux.ee \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®