From: ebiederm@xmission.com (Eric W. Biederman)
To: Yinghai Lu <yinghai@kernel.org>
Cc: Thomas Renninger <trenn@suse.de>, Gary Hade <garyhade@us.ibm.com>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Iranna D Ankad <iranna.ankad@in.ibm.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Suresh Siddha <suresh.b.siddha@intel.com>,
len.brown@intel.com,
"linux-kernel\@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Other problem/regression with b9c61b70075c87a8612624736faf4a2de5b1ed30
Date: Tue, 23 Feb 2010 12:17:11 -0800 [thread overview]
Message-ID: <m1eikbbtbs.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <4B842129.8020906@kernel.org> (Yinghai Lu's message of "Tue\, 23 Feb 2010 10\:40\:41 -0800")
Yinghai Lu <yinghai@kernel.org> writes:
> On 02/23/2010 01:07 AM, Yinghai Lu wrote:
>> Gary,
>>
>> can you check this patch on your x3950?
>
> Subject: [PATCH -v2] x86: fix out of order of gsi
>
> found IBM x3950 will have problem after
>
> |commit b9c61b70075c87a8612624736faf4a2de5b1ed30
> |
> | x86/pci: update pirq_enable_irq() to setup io apic routing
>
> The problem is that with the patch, the machine freezes when
> console=ttyS0,... kernel serial parameter is passed.
> It seem to freeze at DVD initialization and the whole problem seem
> to be DVD/pata related, but somehow exposed through the serial
> parameter.
> Such apic problems can expose really weird behavior..
>
> <6>ACPI: IOAPIC (id[0x10] address[0xfecff000] gsi_base[0])
> <6>IOAPIC[0]: apic_id 16, version 0, address 0xfecff000, GSI 0-2
> <6>ACPI: IOAPIC (id[0x0f] address[0xfec00000] gsi_base[3])
> <6>IOAPIC[1]: apic_id 15, version 0, address 0xfec00000, GSI 3-38
> <6>ACPI: IOAPIC (id[0x0e] address[0xfec01000] gsi_base[39])
> <6>IOAPIC[2]: apic_id 14, version 0, address 0xfec01000, GSI 39-74
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 1 global_irq 4 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 5 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 3 global_irq 6 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 4 global_irq 7 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 6 global_irq 9 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 7 global_irq 10 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 8 global_irq 11 low edge)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 12 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 12 global_irq 15 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 13 global_irq 16 dfl dfl)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 17 low edge)
> <6>ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 18 dfl dfl)
>
> it turns out that system have three io apic controller. but put boot ioapic
> routing in second one. and that gsi_base is not 0. it is using bunch of INT_SRC_OVR...
>
> recent changes
> 1. one set routing for first io apic controller
> 2. assume irq = gsi
> will break theat system.
>
> so try to remap those gsi, need to seperate boot_ioapic_id detection out of enable_IO_APIC
> and call them early.
> introduce boot_ioapic_id, and remap_ioapic_gsi...
>
> -v2: shift gsi with delta instead of gsi_base of boot_ioapic_idx
>
> Reported-by: Iranna D Ankad <iranna.ankad@in.ibm.com>
> Bisected-by: Iranna D Ankad <iranna.ankad@in.ibm.com>
> Cc: Thomas Renninger <trenn@suse.de>
> Cc: stable@kernel.org
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> +int remap_ioapic_gsi(int ioapic, u32 gsi)
> +{
> + int base_boot = mp_gsi_routing[boot_ioapic_idx].gsi_base;
> + int base_x;
> +
> + if (!base_boot)
> + return gsi;
> +
> + base_x = mp_gsi_routing[ioapic].gsi_base;
> + if (base_x < base_boot) {
> + int delta;
> + delta = mp_gsi_routing[boot_ioapic_idx].gsi_end + 1;
> + delta -= base_boot;
> + gsi += delta;
> + } else if (base_x == base_boot)
> + gsi -= base_boot;
> +
> + return gsi;
> +}
This looks like it is doing something very different from implementing a
one irq at a time override, and after the nasties remapping gsi have
caused in the past I find this function very scary.
Eric
next prev parent reply other threads:[~2010-02-23 20:17 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201002221108.42847.trenn@suse.de>
[not found] ` <4B826CA6.7060007@kernel.org>
[not found] ` <201002221258.38506.trenn@suse.de>
2010-02-23 9:07 ` Other problem/regression with b9c61b70075c87a8612624736faf4a2de5b1ed30 Yinghai Lu
2010-02-23 18:40 ` Yinghai Lu
2010-02-23 20:17 ` Eric W. Biederman [this message]
2010-02-26 19:30 ` [PATCH -v8 1/2] x86: fix out of order of gsi - have right boot_ioapic_idx Yinghai Lu
2010-02-27 12:57 ` [tip:x86/apic] x86: Fix out of order gsi - have the " tip-bot for Yinghai Lu
2010-02-26 19:31 ` [PATCH -v8 2/2] x86: fix out of order of gsi -- add remap_ioapic_gsi_to_irq Yinghai Lu
2010-02-27 12:57 ` [tip:x86/apic] x86: Fix out of order gsi -- add remap_ioapic_gsi_to_irq() tip-bot for Yinghai Lu
2010-02-27 13:01 ` Ingo Molnar
2010-02-27 18:52 ` Yinghai Lu
2010-02-27 22:57 ` H. Peter Anvin
2010-02-27 19:04 ` Eric W. Biederman
2010-02-27 19:40 ` Yinghai Lu
2010-02-27 21:30 ` Eric W. Biederman
2010-02-27 22:00 ` Yinghai Lu
2010-02-27 22:18 ` Eric W. Biederman
2010-02-27 22:58 ` Yinghai Lu
2010-02-28 1:12 ` [PATCH -v9] x86: fix out of order of gsi Yinghai Lu
2010-02-28 3:26 ` [PATCH -v10] " Yinghai Lu
2010-02-28 3:47 ` [PATCH -v11] x86: fix out of order of gsi -- partial Yinghai Lu
2010-02-28 8:09 ` Ingo Molnar
2010-02-28 9:05 ` Yinghai Lu
2010-03-01 14:40 ` Thomas Renninger
2010-03-01 18:31 ` Yinghai Lu
2010-02-28 9:06 ` [PATCH -v12 1/2] " Yinghai Lu
2010-02-28 19:51 ` [tip:x86/apic] x86: Fix out of order of gsi tip-bot for Eric W. Biederman
2010-02-28 9:08 ` [PATCH -v12 2/2] x86: fix out of order of gsi - full Yinghai Lu
2010-03-01 18:59 ` Eric W. Biederman
2010-03-01 19:37 ` [tip:x86/apic] x86: Fix out of order gsi -- add remap_ioapic_gsi_to_irq() Eric W. Biederman
2010-03-01 20:26 ` Yinghai Lu
2010-03-01 16:46 ` [LKML] " Konrad Rzeszutek Wilk
2010-03-01 18:37 ` Yinghai Lu
2010-03-01 18:44 ` Eric W. Biederman
2010-03-01 18:33 ` [LKML] " Konrad Rzeszutek Wilk
2010-02-23 19:02 ` Other problem/regression with b9c61b70075c87a8612624736faf4a2de5b1ed30 Gary Hade
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=m1eikbbtbs.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=garyhade@us.ibm.com \
--cc=hpa@zytor.com \
--cc=iranna.ankad@in.ibm.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=trenn@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.