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