Skip to contentSkip to conversation

Oops during Init IRQ

DISCUSSION leroy christophe 3 participants 6 messages Jun 18, 2012 – Jun 22, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello,

I'm trying to use the rt10 patch on a 3.4.2 kernel on a powerpc (MPC8xx) system, and I'm having the following Oops during Irq initialisation. This happens with CONFIG_PREEMPT_RT_FULL. It doesn't happen with CONFIG_PREEMPT__LL

May someone help ?

[    0.000000] Memory: 125676k/131072k available (3680k kernel code, 5396k reserved, 160k data, 193k bss, 140k init)
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xfffdf000..0xfffff000  : fixmap
[    0.000000]   * 0xfde00000..0xfe000000  : consistent mem
[    0.000000]   * 0xfddf6000..0xfde00000  : early ioremap
[    0.000000]   * 0xc9000000..0xfddf6000  : vmalloc & ioremap
[    0.000000] NR_IRQS:512 nr_irqs:512 16
[    0.000000] Unable to handle kernel paging request for data at address 0x00000418
[    0.000000] Faulting instruction address: 0xc0163398
[    0.000000] Oops: Kernel access of bad area, sig: 11 [#1]
[    0.000000] PREEMPT CMPC885
[    0.000000] Modules linked in:
[    0.000000] NIP: c0163398 LR: c02ae398 CTR: 00000000
[    0.000000] REGS: c03b3d60 TRAP: 0300   Not tainted (3.4.2-rt10-s3k-3.7.4+-svn2547)
[    0.000000] MSR: 00001032 <ME,IR,DR,RI>  CR: 22444482  XER: 20005208
[    0.000000] DAR: 00000418, DSISR: c0000000
[    0.000000] TASK = c039a3e8[0] 'swapper' THREAD: c03b2000
[    0.000000] GPR00: c02ae398 c03b3e10 c039a3e8 00000414 0000000f 00000000 c032f744 00000011
[    0.000000] GPR08: c039a3e8 c03b2000 00000000 00000001 22444482 10029aec 00000000 07ff9550
[    0.000000] GPR16: 00000000 07bb6de8 00000000 07ff825c 07ff825c 07ff825c 00000000 00000000
[    0.000000] GPR24: 07ffb3a0 ffffffed 00000001 00000000 c039d6d4 0000000f 00000414 00000414
[    0.000000] NIP [c0163398] do_raw_spin_lock+0x34/0x174
[    0.000000] LR [c02ae398] _raw_spin_lock_irqsave+0x30/0x48
[    0.000000] Call Trace:
[    0.000000] [c03b3e10] [07fe7f50] 0x7fe7f50 (unreliable)
[    0.000000] [c03b3e40] [c02ae398] _raw_spin_lock_irqsave+0x30/0x48
[    0.000000] [c03b3e50] [c0043050] try_to_wake_up+0x38/0x1a0
[    0.000000] [c03b3e70] [c0036c58] kthread_create_on_node+0x9c/0x124
[    0.000000] [c03b3f00] [c005c780] __setup_irq+0x2ac/0x464
[    0.000000] [c03b3f30] [c005cdec] setup_irq+0x64/0xb8
[    0.000000] [c03b3f50] [c0013e80] cpm_pic_init+0x14c/0x1f0
[    0.000000] [c03b3f90] [c03798f0] mpc8xx_pics_init+0x2c/0x58
[    0.000000] [c03b3fa0] [c0379cd4] cmpc885_pics_init+0x14/0xcc
[    0.000000] [c03b3fb0] [c0377478] init_IRQ+0x24/0x34
[    0.000000] [c03b3fc0] [c0375830] start_kernel+0x1cc/0x300
[    0.000000] [c03b3ff0] [c0002218] start_here+0x38/0x9c
[    0.000000] Instruction dump:
[    0.000000] 9421ffd0 7d800026 93e1002c 90010034 93210014 93410018 9361001c 93810020
[    0.000000] 93a10024 93c10028 91810010 7c7f1b78 <81230004> 6d20dead 2f804ead 409e0074

Best regards
C. Leroy

#1 lore raw
Quoted 8 lines · leroy christophe

Hello,

I'm trying to use the rt10 patch on a 3.4.2 kernel on a powerpc (MPC8xx) system, and I'm having the following Oops during Irq initialisation. This happens with CONFIG_PREEMPT_RT_FULL.
It doesn't happen with CONFIG_PREEMPT__LL

May someone help ?

Does the following uncompiled and untested patch fix it for you ?

Thanks,

tglx

arch/powerpc/platforms/8xx/m8xx_setup.c +1 -0
Index: linux-3.4/arch/powerpc/platforms/8xx/m8xx_setup.c
===================================================================
@@ -43,6 +43,7 @@ static irqreturn_t timebase_interrupt(in
 
 static struct irqaction tbint_irqaction = {
 	.handler = timebase_interrupt,
+	.flags = IRQF_NO_THREAD,
 	.name = "tbint",
 };
 
arch/powerpc/sysdev/cpm1.c +1 -0
Index: linux-3.4/arch/powerpc/sysdev/cpm1.c
===================================================================
@@ -120,6 +120,7 @@ static irqreturn_t cpm_error_interrupt(i
 
 static struct irqaction cpm_error_irqaction = {
 	.handler = cpm_error_interrupt,
+	.flags = IRQF_NO_THREAD,
 	.name = "error",
 };
 
#2 lore raw

Hello,

Yes it does fix the issue.
Thanks a lot.

Shall I do anything to ask for this change to be included either in the kernel or in the rt patch ?

Best regards
Christophe

Quoted 35 lines · Thomas Gleixner
Quoted 8 lines · leroy christophe

Hello,

I'm trying to use the rt10 patch on a 3.4.2 kernel on a powerpc (MPC8xx) system, and I'm having the following Oops during Irq initialisation. This happens with CONFIG_PREEMPT_RT_FULL.
It doesn't happen with CONFIG_PREEMPT__LL

May someone help ?

Does the following uncompiled and untested patch fix it for you ?

Thanks,

tglx

Index: linux-3.4/arch/powerpc/platforms/8xx/m8xx_setup.c
===================================================================

arch/powerpc/platforms/8xx/m8xx_setup.c +1 -0
@@ -43,6 +43,7 @@ static irqreturn_t timebase_interrupt(in
 
  static struct irqaction tbint_irqaction = {
  	.handler = timebase_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "tbint",
  };
 

Index: linux-3.4/arch/powerpc/sysdev/cpm1.c
===================================================================

arch/powerpc/sysdev/cpm1.c static irqreturn_t cpm_error_interrupt(i · line 126

Quoted 7 lines
arch/powerpc/sysdev/cpm1.c +1 -0
@@ -120,6 +120,7 @@ static irqreturn_t cpm_error_interrupt(i
 
  static struct irqaction cpm_error_irqaction = {
  	.handler = cpm_error_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "error",
  };
 

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 7 lines · leroy christophe

Hello,

Yes it does fix the issue.
Thanks a lot.

Shall I do anything to ask for this change to be included either in the kernel or in the rt patch ?

We'll take care. Thanks.

Steven, can you please pick that up for stable-rt ? It's in my queue, but I won't be able to release before the weekend.

Thanks,

tglx

Quoted 30 lines
Quoted 17 lines

Index: linux-3.4/arch/powerpc/platforms/8xx/m8xx_setup.c
===================================================================

arch/powerpc/platforms/8xx/m8xx_setup.c +1 -0
@@ -43,6 +43,7 @@ static irqreturn_t timebase_interrupt(in
    static struct irqaction tbint_irqaction = {
  	.handler = timebase_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "tbint",
  };
  Index: linux-3.4/arch/powerpc/sysdev/cpm1.c

===================================================================

arch/powerpc/sysdev/cpm1.c static irqreturn_t cpm_error_interrupt(i · line 125

Quoted 6 lines
arch/powerpc/sysdev/cpm1.c +1 -0
@@ -120,6 +120,7 @@ static irqreturn_t cpm_error_interrupt(i
    static struct irqaction cpm_error_irqaction = {
  	.handler = cpm_error_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "error",
  };
 

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#4 lore raw
Quoted 2 lines · Thomas Gleixner

Steven, can you please pick that up for stable-rt ? It's in my queue, but I won't be able to release before the weekend.

I'll pull it in first thing tomorrow. I'm taking the day off today.

-- Steve

#5 lore raw
In reply to Thomas Gleixner
Quoted 6 lines · Thomas Gleixner
Quoted 5 lines · leroy christophe

Hello,

Yes it does fix the issue.
Thanks a lot.

Quoted 8 lines
Quoted 2 lines

Shall I do anything to ask for this change to be included either in the kernel or in the rt patch ?

We'll take care. Thanks.

Steven, can you please pick that up for stable-rt ? It's in my queue, but I won't be able to release before the weekend.

Thomas, can you reply with your SOB tag please.

I'll also add a reported by and tested by from Leroy.

Thanks,

-- Steve

Quoted 34 lines
Quoted 21 lines
Quoted 21 lines

Index: linux-3.4/arch/powerpc/platforms/8xx/m8xx_setup.c
===================================================================

arch/powerpc/platforms/8xx/m8xx_setup.c +1 -0
@@ -43,6 +43,7 @@ static irqreturn_t timebase_interrupt(in
    static struct irqaction tbint_irqaction = {
  	.handler = timebase_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "tbint",
  };
  Index: linux-3.4/arch/powerpc/sysdev/cpm1.c

===================================================================

arch/powerpc/sysdev/cpm1.c +1 -0
@@ -120,6 +120,7 @@ static irqreturn_t cpm_error_interrupt(i
    static struct irqaction cpm_error_irqaction = {
  	.handler = cpm_error_interrupt,
+	.flags = IRQF_NO_THREAD,
  	.name = "error",
Quoted 9 lines

arch/powerpc/sysdev/cpm1.c static irqreturn_t cpm_error_interrupt(i · line 125

Quoted 2 lines
arch/powerpc/sysdev/cpm1.c +0 -0
  };
 

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html