<div><br clear="all">Hello All,</div>
<div> </div>
<div>   I'm trying to bring up a Marvell board [db644xx] with dual CPU[7447A] with kernel 2.6.33.5-rt23[Ingo's RT patch]. For conveniance I have registered IPI interrupt with IRQF_NODELAY flag, all other interrupts are threaded. I'm able to boot up the system fine, however after few hours I see random kernel crash in Marvell's PIC module. I understand that the RT kernel doesn't like the way spinlock is used, I tried to convert to raw_spin_lock, but the system would get frozen. I can make the system stable by just not using any locks, but thats not an ideal solution. Can someone please suggest a better locking mechanism? Crash dump I have given below:</div>

<div> </div>
<div>NIP: 00000000 LR: 70030258 CTR: 00000000<br>REGS: deeebcf0 TRAP: 0400   Tainted: P            (2.6.33.5-rt23)<br>MSR: 40001032 <ME,IR,DR>  CR: 24004024  XER: 20000004<br>TASK = df915240[788] 'irq/74-ide0' THREAD: deeea000 CPU: 1<br>
GPR00: 70030390 deeebda0 df915240 72e17ac0 703683f8 00000001 00000000 645d28e8 <br>GPR08: 00000000 00000000 00000000 00000005 46f0b20f 00000000 00fe4600 007fff00 <br>GPR16: 04000000 003d4ba2 007ffeb0 00800000 00ff690c 03000040 00f7eba2 deeebf6c <br>
GPR24: 00000001 00000000 00000000 deeea000 72e17ac0 00000000 703683f8 703683f8 <br>NIP [00000000] (null)<br>LR [70030258] enqueue_task+0x3c/0x58<br>Call Trace:<br>[deeebda0] [0000001e] 0x1e (unreliable)<br>[deeebdb0] [70030390] activate_task+0x40/0x60<br>
[deeebdc0] [70036850] try_to_wake_up+0x248/0x334<br>[deeebe00] [70069380] wakeup_next_waiter+0x148/0x14c<br>[deeebe20] [7029b1d4] rt_spin_lock_slowunlock+0x60/0x84<br>[deeebe30] [7001a168] marvell_disable_IPI_irq+0xfc/0x110<br>
[deeebe50] [70073934] handle_level_irq+0x40/0x15c<br>[deeebe70] [70006418] do_IRQ+0xc8/0xf4<br>[deeebe90] [7001276c] ret_from_except+0x0/0x14<br>--- Exception: 501 at schedule+0x30/0x50<br>    LR = schedule+0x24/0x50<br>[deeebf60] [700717bc] irq_thread+0x98/0x230<br>
[deeebfa0] [7005686c] kthread+0x78/0x7c<br>[deeebff0] [70011ef4] kernel_thread+0x4c/0x68<br>Instruction dump:<br>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX <br>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX <br>
Kernel panic - not syncing: Fatal exception in interrupt<br>Call Trace:<br>[deeebc20</div>
<div>---------------------------------------------------------------------------------------------------------------------</div>
<div> </div>
<div>IRQ CONFIGs:</div>
<div> </div>
<div>CONFIG_GENERIC_CMOS_UPDATE=y<br>CONFIG_GENERIC_TIME=y<br>CONFIG_GENERIC_TIME_VSYSCALL=y<br>CONFIG_GENERIC_CLOCKEVENTS=y<br>CONFIG_GENERIC_HARDIRQS=y<br>CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y<br># CONFIG_HAVE_SETUP_PER_CPU_AREA is not set<br>
# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set<br>CONFIG_IRQ_PER_CPU=y<br>CONFIG_NR_IRQS=512<br>CONFIG_STACKTRACE_SUPPORT=y<br>CONFIG_HAVE_LATENCYTOP_SUPPORT=y<br>CONFIG_TRACE_IRQFLAGS_SUPPORT=y</div>
<div><br>-- <br>Thanks,<br>Manik<br><br>Think twice about a tree before you take a printout<br></div>