* mpic discovery on JS20
@ 2006-07-20 23:16 Amos Waterland
2006-07-21 17:37 ` Benjamin Herrenschmidt
2006-07-24 7:41 ` Michael Ellerman
0 siblings, 2 replies; 8+ messages in thread
From: Amos Waterland @ 2006-07-20 23:16 UTC (permalink / raw)
To: linuxppc-dev
Current Linus and Paulus trees do this on JS20 blades with SLOF:
Failed to locate the MPIC interrupt controller
PID hash table entries: 4096 (order: 12, 32768 bytes)
Maple: Found RTC at IO 0x1070
cpu 0x0: Vector: 700 (Program Check) at [c00000007ef83ab0]
pc: c00000000002e0c8: .mpic_request_ipis+0x34/0xc8
lr: c00000000036b484: .smp_mpic_probe+0x3c/0x58
sp: c00000007ef83d30
msr: 9000000000029032
current = 0xc00000000194d610
paca = 0xc00000000038f180
pid = 1, comm = swapper
kernel BUG in mpic_request_ipis at arch/powerpc/sysdev/mpic.c:1132!
Doing a git-bisect produces this:
0ebfff1491ef85d41ddf9c633834838be144f69f is first bad commit
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Mon Jul 3 21:36:01 2006 +1000
[POWERPC] Add new interrupt mapping core and change platforms to use it
This adds the new irq remapper core and removes the old one. Because
there are some fundamental conflicts with the old code, like the value
of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
etc..., this commit also changes the relevant platform and driver code
over to use the new remapper (so as not to cause difficulties later
in bisecting).
This patch removes the old pre-parsing of the open firmware interrupt
tree along with all the bogus assumptions it made to try to renumber
interrupts according to the platform. This is all to be handled by the
new code now.
For the pSeries XICS interrupt controller, a single remapper host is
created for the whole machine regardless of how many interrupt
presentation and source controllers are found, and it's set to match
any device node that isn't a 8259. That works fine on pSeries and
avoids having to deal with some of the complexities of split source
controllers vs. presentation controllers in the pSeries device trees.
The powerpc i8259 PIC driver now always requests the legacy interrupt
range. It also has the feature of being able to match any device node
(including NULL) if passed no device node as an input. That will help
porting over platforms with broken device-trees like Pegasos who don't
have a proper interrupt tree.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-20 23:16 mpic discovery on JS20 Amos Waterland
@ 2006-07-21 17:37 ` Benjamin Herrenschmidt
2006-07-24 21:09 ` Amos Waterland
2006-07-24 7:41 ` Michael Ellerman
1 sibling, 1 reply; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2006-07-21 17:37 UTC (permalink / raw)
To: Amos Waterland; +Cc: linuxppc-dev
On Thu, 2006-07-20 at 19:16 -0400, Amos Waterland wrote:
> Current Linus and Paulus trees do this on JS20 blades with SLOF:
I need a tarball of /proc/device-tree on these.
> Failed to locate the MPIC interrupt controller
> PID hash table entries: 4096 (order: 12, 32768 bytes)
> Maple: Found RTC at IO 0x1070
> cpu 0x0: Vector: 700 (Program Check) at [c00000007ef83ab0]
> pc: c00000000002e0c8: .mpic_request_ipis+0x34/0xc8
> lr: c00000000036b484: .smp_mpic_probe+0x3c/0x58
> sp: c00000007ef83d30
> msr: 9000000000029032
> current = 0xc00000000194d610
> paca = 0xc00000000038f180
> pid = 1, comm = swapper
> kernel BUG in mpic_request_ipis at arch/powerpc/sysdev/mpic.c:1132!
>
> Doing a git-bisect produces this:
>
> 0ebfff1491ef85d41ddf9c633834838be144f69f is first bad commit
> Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Date: Mon Jul 3 21:36:01 2006 +1000
>
> [POWERPC] Add new interrupt mapping core and change platforms to use it
>
> This adds the new irq remapper core and removes the old one. Because
> there are some fundamental conflicts with the old code, like the value
> of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
> etc..., this commit also changes the relevant platform and driver code
> over to use the new remapper (so as not to cause difficulties later
> in bisecting).
>
> This patch removes the old pre-parsing of the open firmware interrupt
> tree along with all the bogus assumptions it made to try to renumber
> interrupts according to the platform. This is all to be handled by the
> new code now.
>
> For the pSeries XICS interrupt controller, a single remapper host is
> created for the whole machine regardless of how many interrupt
> presentation and source controllers are found, and it's set to match
> any device node that isn't a 8259. That works fine on pSeries and
> avoids having to deal with some of the complexities of split source
> controllers vs. presentation controllers in the pSeries device trees.
>
> The powerpc i8259 PIC driver now always requests the legacy interrupt
> range. It also has the feature of being able to match any device node
> (including NULL) if passed no device node as an input. That will help
> porting over platforms with broken device-trees like Pegasos who don't
> have a proper interrupt tree.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Signed-off-by: Paul Mackerras <paulus@samba.org>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-20 23:16 mpic discovery on JS20 Amos Waterland
2006-07-21 17:37 ` Benjamin Herrenschmidt
@ 2006-07-24 7:41 ` Michael Ellerman
2006-07-24 18:20 ` Segher Boessenkool
2006-07-24 21:07 ` Amos Waterland
1 sibling, 2 replies; 8+ messages in thread
From: Michael Ellerman @ 2006-07-24 7:41 UTC (permalink / raw)
To: Amos Waterland; +Cc: linuxppc-dev
[-- Attachment #1.1: Type: text/plain, Size: 716 bytes --]
On Thu, 2006-07-20 at 19:16 -0400, Amos Waterland wrote:
> Current Linus and Paulus trees do this on JS20 blades with SLOF:
>
> Failed to locate the MPIC interrupt controller
> PID hash table entries: 4096 (order: 12, 32768 bytes)
> Maple: Found RTC at IO 0x1070
> cpu 0x0: Vector: 700 (Program Check) at [c00000007ef83ab0]
> pc: c00000000002e0c8: .mpic_request_ipis+0x34/0xc8
> lr: c00000000036b484: .smp_mpic_probe+0x3c/0x58
> sp: c00000007ef83d30
> msr: 9000000000029032
> current = 0xc00000000194d610
> paca = 0xc00000000038f180
> pid = 1, comm = swapper
> kernel BUG in mpic_request_ipis at arch/powerpc/sysdev/mpic.c:1132!
Does this help?
cheers
[-- Attachment #1.2: mpic-fixup.patch --]
[-- Type: text/x-patch, Size: 1132 bytes --]
Index: to-merge/arch/powerpc/platforms/maple/setup.c
===================================================================
--- to-merge.orig/arch/powerpc/platforms/maple/setup.c
+++ to-merge/arch/powerpc/platforms/maple/setup.c
@@ -216,6 +216,7 @@ static void __init maple_init_IRQ(void)
int naddr, n, i, opplen, has_isus = 0;
struct mpic *mpic;
unsigned int flags = MPIC_PRIMARY;
+ char *typep;
/* Locate MPIC in the device-tree. Note that there is a bug
* in Maple device-tree where the type of the controller is
@@ -226,9 +227,19 @@ static void __init maple_init_IRQ(void)
break;
}
if (mpic_node == NULL) {
- printk(KERN_ERR
- "Failed to locate the MPIC interrupt controller\n");
- return;
+ for_each_node_by_type(np, "interrupt-controller") {
+ typep = (char *)get_property(np, "compatible", NULL);
+ if (strstr(typep, "open-pic")) {
+ mpic_node = np;
+ break;
+ }
+ }
+
+ if (mpic_node == NULL) {
+ printk(KERN_ERR "Failed to locate the MPIC interrupt "
+ "controller\n");
+ return;
+ }
}
/* Find address list in /platform-open-pic */
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 191 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-24 7:41 ` Michael Ellerman
@ 2006-07-24 18:20 ` Segher Boessenkool
2006-07-25 1:54 ` Michael Ellerman
2006-07-24 21:07 ` Amos Waterland
1 sibling, 1 reply; 8+ messages in thread
From: Segher Boessenkool @ 2006-07-24 18:20 UTC (permalink / raw)
To: michael; +Cc: linuxppc-dev
> Does this help?
Yes it does. I thought that went upstream already though?
Segher
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-24 7:41 ` Michael Ellerman
2006-07-24 18:20 ` Segher Boessenkool
@ 2006-07-24 21:07 ` Amos Waterland
1 sibling, 0 replies; 8+ messages in thread
From: Amos Waterland @ 2006-07-24 21:07 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev
On Mon, Jul 24, 2006 at 05:41:36PM +1000, Michael Ellerman wrote:
> On Thu, 2006-07-20 at 19:16 -0400, Amos Waterland wrote:
> > Current Linus and Paulus trees do this on JS20 blades with SLOF:
> >
> > Failed to locate the MPIC interrupt controller
> > PID hash table entries: 4096 (order: 12, 32768 bytes)
> > Maple: Found RTC at IO 0x1070
> > cpu 0x0: Vector: 700 (Program Check) at [c00000007ef83ab0]
> > pc: c00000000002e0c8: .mpic_request_ipis+0x34/0xc8
> > lr: c00000000036b484: .smp_mpic_probe+0x3c/0x58
> > sp: c00000007ef83d30
> > msr: 9000000000029032
> > current = 0xc00000000194d610
> > paca = 0xc00000000038f180
> > pid = 1, comm = swapper
> > kernel BUG in mpic_request_ipis at arch/powerpc/sysdev/mpic.c:1132!
>
> Does this help?
Yes, it does to some degree. Current paulus tree with your patch applied:
Built 1 zonelists. Total pages: 524288
Kernel command line:
mpic: Setting up MPIC " MPIC " version <unknown> at f8040000, max 28 CPUs
mpic: ISU size: 516, shift: 10, mask: 3ff
Badness in mpic_init at arch/powerpc/sysdev/mpic.c:875
Call Trace:
[C0000000004D3880] [C00000000000EEB8] .show_stack+0x68/0x1b0 (unreliable)
[C0000000004D3920] [C00000000001D558] .program_check_exception+0x1cc/0x598
[C0000000004D39F0] [C0000000000044EC] program_check_common+0xec/0x100
--- Exception: 700 at .mpic_init+0x5c/0x784
LR = .maple_init_IRQ+0x204/0x290
[C0000000004D3CE0] [C0000000004D3DB0] init_thread_union+0x3db0/0x4000
[C0000000004D3DB0] [C00000000036C130] .maple_init_IRQ+0x204/0x290
[C0000000004D3E80] [C000000000361A88] .init_IRQ+0x34/0x48
[C0000000004D3EF0] [C00000000035B6E0] .start_kernel+0x154/0x2b8
[C0000000004D3F90] [C0000000000084FC] .start_here_common+0x50/0x54
mpic: Initializing for 251 sources
mpic: Setting up HT PICs workarounds for U3/U4
mpic: - HT:01.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic: - HT:02.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic: - HT:03.0 [0xf0] vendor 1022 device 7460 has 24 irqs
PID hash table entries: 4096 (order: 12, 32768 bytes)
Maple: Found RTC at IO 0x1070
cpu 0x0: Vector: 0 at [c00000007ef83940]
pc: c0000000000216bc: .smp_call_function+0x18c/0x1e4
lr: c0000000000216bc: .smp_call_function+0x18c/0x1e4
sp: c00000007ef83ab0
msr: 9000000000009032
current = 0xc00000000194d610
paca = 0xc00000000038c180
pid = 1, comm = swapper
The warning is this:
WARN_ON(mpic->num_sources > MPIC_VEC_IPI_0);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-21 17:37 ` Benjamin Herrenschmidt
@ 2006-07-24 21:09 ` Amos Waterland
0 siblings, 0 replies; 8+ messages in thread
From: Amos Waterland @ 2006-07-24 21:09 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 548 bytes --]
***********************
Warning: Your file, js20-devtree.tar.gz, contains more than 32 files after decompression and cannot be scanned.
***********************
On Fri, Jul 21, 2006 at 01:37:56PM -0400, Benjamin Herrenschmidt wrote:
> On Thu, 2006-07-20 at 19:16 -0400, Amos Waterland wrote:
> > Current Linus and Paulus trees do this on JS20 blades with SLOF:
>
> I need a tarball of /proc/device-tree on these.
I booted 2.6.17-rc2 and tarred up /proc/device-tree. Since the
compressed tarball is only 4KB I have attached it to this email.
[-- Attachment #2: js20-devtree.tar.gz --]
[-- Type: application/octet-stream, Size: 4747 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-24 18:20 ` Segher Boessenkool
@ 2006-07-25 1:54 ` Michael Ellerman
2006-07-25 3:41 ` Segher Boessenkool
0 siblings, 1 reply; 8+ messages in thread
From: Michael Ellerman @ 2006-07-25 1:54 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 499 bytes --]
On Mon, 2006-07-24 at 20:20 +0200, Segher Boessenkool wrote:
> > Does this help?
>
> Yes it does. I thought that went upstream already though?
Doh, pays to read the mailing list huh :)
It's probably sitting in Paul's inbox, waiting for him to merge it.
cheers
--
Michael Ellerman
IBM OzLabs
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 191 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mpic discovery on JS20
2006-07-25 1:54 ` Michael Ellerman
@ 2006-07-25 3:41 ` Segher Boessenkool
0 siblings, 0 replies; 8+ messages in thread
From: Segher Boessenkool @ 2006-07-25 3:41 UTC (permalink / raw)
To: michael; +Cc: linuxppc-dev
>>> Does this help?
>>
>> Yes it does. I thought that went upstream already though?
>
> Doh, pays to read the mailing list huh :)
>
> It's probably sitting in Paul's inbox, waiting for him to merge it.
I could have sworn it went in, I don't see it anymore though.
More patches are needed anyway, I'll take care of it ASAP.
Segher
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2006-07-25 3:42 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-20 23:16 mpic discovery on JS20 Amos Waterland
2006-07-21 17:37 ` Benjamin Herrenschmidt
2006-07-24 21:09 ` Amos Waterland
2006-07-24 7:41 ` Michael Ellerman
2006-07-24 18:20 ` Segher Boessenkool
2006-07-25 1:54 ` Michael Ellerman
2006-07-25 3:41 ` Segher Boessenkool
2006-07-24 21:07 ` Amos Waterland
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).