From: Yinghai Lu <yinghai@kernel.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-tip-commits@vger.kernel.org, linux-kernel@vger.kernel.org,
hpa@zytor.com, mingo@redhat.com, garyhade@us.ibm.com,
iranna.ankad@in.ibm.com, suresh.b.siddha@intel.com,
tglx@linutronix.de, trenn@suse.de
Subject: Re: [tip:x86/apic] x86: Fix out of order gsi -- add remap_ioapic_gsi_to_irq()
Date: Sat, 27 Feb 2010 11:40:39 -0800 [thread overview]
Message-ID: <4B897537.5050406@kernel.org> (raw)
In-Reply-To: <m1y6ieo5zw.fsf@fess.ebiederm.org>
On 02/27/2010 11:04 AM, Eric W. Biederman wrote:
> Ingo Molnar <mingo@elte.hu> writes:
>
>> Causes:
>>
>> arch/x86/kernel/apic/io_apic.c:1042: error: implicit declaration of function ?remap_ioapic_gsi_to_irq?
>>
>> Please send delta fix.
>
> I am certain I have said this before but the entire concept of
> irq != gsi is broken. We used to have code that did this and it was a
> non-ending source of problems that we finally removed after we pushed
> up the limit on the number of irqs.
>
> We already have the irq_2_pin list which allows for arbitrary mappings
> between irqs and the ioapics and pins. So there should be no problem
> mapping irq to gsi and assigning irqs to arbitrary ioapic pins.
>
> I have yet to see something that even purports to be an explanation
> of why our handling of acpi int_src_overrides is broken and why
> it needs the mess that is a remapper.
>
> I don't doubt YHs changes fix something but this feels like a direction
> that trades off one bug for another instead of actually fixing the code.
>
> It does look like we have weird old hard codes in some of the
> irq_2_pin and pin_2_irq paths that YH is touching, and it may make sense
> to introduce a concept of ioapic pin index.
>
> The touching of drivers/pnp/pnpacpi/rsparser.c feels like just the tip of
> the iceberg in dealing with weird bugs if we continue down this path.
>
the x3950 has strange gsi base
ACPI: IOAPIC (id[0x10] address[0xfecff000] gsi_base[0])
IOAPIC[0]: apic_id 16, version 0, address 0xfecff000, GSI 0-2
ACPI: IOAPIC (id[0x0f] address[0xfec00000] gsi_base[3])
IOAPIC[1]: apic_id 15, version 0, address 0xfec00000, GSI 3-38
ACPI: IOAPIC (id[0x0e] address[0xfec01000] gsi_base[39])
IOAPIC[2]: apic_id 14, version 0, address 0xfec01000, GSI 39-74
and BIOS using INT_SRC_OVR to map back gsi 3 - 18 to irq 0 - 15
ACPI: INT_SRC_OVR (bus 0 bus_irq 1 global_irq 4 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 5 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 3 global_irq 6 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 4 global_irq 7 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 6 global_irq 9 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 7 global_irq 10 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 8 global_irq 11 low edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 12 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 12 global_irq 15 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 13 global_irq 16 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 17 low edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 18 dfl dfl)
if we dont have this patch to do the remap (swap some mapping between ioapic), and only assume irq = gsi,
the irq from first ioapic controller will be blocked.
so far this patch only affect (fix ) x3950.
all other platform will all have boot_ioapic_idx's gsi_base == 0,
the function will just still return gsi.
other solution will ask IBM to fix their bios, so we can get
ACPI: IOAPIC (id[0x10] address[0xfecff000] gsi_base[36])
IOAPIC[0]: apic_id 16, version 0, address 0xfecff000, GSI 36-38
ACPI: IOAPIC (id[0x0f] address[0xfec00000] gsi_base[0])
IOAPIC[1]: apic_id 15, version 0, address 0xfec00000, GSI 0-35
ACPI: IOAPIC (id[0x0e] address[0xfec01000] gsi_base[39])
IOAPIC[2]: apic_id 14, version 0, address 0xfec01000, GSI 39-74
then they don't need append that bunch of OVR.
Yinghai
next prev parent reply other threads:[~2010-02-27 19:42 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
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 [this message]
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=4B897537.5050406@kernel.org \
--to=yinghai@kernel.org \
--cc=ebiederm@xmission.com \
--cc=garyhade@us.ibm.com \
--cc=hpa@zytor.com \
--cc=iranna.ankad@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=trenn@suse.de \
/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.