Hi,

I am running 2.6.29.1 on MPC8572 dual core with SMP enabled on our customized 
board.

I have two applications running. One is to access CPLD registers via PCI bus 
and then sleep in an endless loop, the other is to send (and of course receive 
data) via TSEC port in an endless loop.

Sooner or later, I will encounter spinlock lockup in both cores.

I examined the call traces and found out that it is always the case that one 
got stuck in switch_mmu_context and the other in task_rq_lock when switching 
from interrupt context to a waiting process.

BUG: spinlock lockup on CPU#0, diag/31023, c0478f64
BUG: spinlock lockup on CPU#1, diag/31016, c18123c0
Call Trace:
[edb4d980] [c0007a78] show_stack+0x48/0x16c (unreliable)
[edb4d9b0] [c01c1a48] _raw_spin_lock+0x1b0/0x1c4
[edb4d9f0] [c0348e7c] _spin_lock+0x10/0x20
[edb4da00] [c002f0c8] task_rq_lock+0x50/0x94
[edb4da30] [c0035430] try_to_wake_up+0xb0/0x214
[edb4da60] [c00b99ec] pollwake+0x64/0x74
[edb4dab0] [c0037970] __wake_up_common+0x5c/0xa0
[edb4dae0] [c0037a6c] __wake_up_sync+0x48/0x68
[edb4db10] [c0272aa8] sock_def_write_space+0xac/0xbc
[edb4db30] [c0271e48] sock_wfree+0x98/0x9c
[edb4db50] [c0274bd0] skb_release_head_state+0x8c/0xa8
[edb4db70] [c0274c04] skb_release_all+0x18/0x30
[edb4db90] [c0274c34] __kfree_skb+0x18/0xec
[edb4dbb0] [f106c6fc] csmencaps_rcv+0x474/0x57c [csmencaps]
[edb4dbe0] [c027f2c0] netif_receive_skb+0x2ec/0x32c
[edb4dc10] [c02167dc] gfar_clean_rx_ring+0x180/0x3dc
[edb4dc60] [c0216aa0] gfar_poll+0x68/0x354
[edb4dcc0] [c027fd34] net_rx_action+0x12c/0x1a8
[edb4dcf0] [c00435b0] __do_softirq+0xa8/0x15c
[edb4dd40] [c0004348] do_softirq+0x60/0x68
[edb4dd60] [c0043768] irq_exit+0x8c/0x90
[edb4dd80] [c00041e4] do_IRQ+0xd8/0x110
[edb4ddb0] [c00102f4] ret_from_except+0x0/0x18
[edb4de70] [c0014a84] destroy_context+0x3c/0xac
[edb4de90] [c003b3fc] __mmdrop+0x3c/0x60
[edb4deb0] [c0035880] finish_task_switch+0xd0/0xd4
[edb4ded0] [c03467b0] __sched_text_start+0x200/0x6b4
[edb4df40] [c00107a8] recheck+0x0/0x24
Call Trace:
[e92e9e10] [c0007a78] show_stack+0x48/0x16c (unreliable)
[e92e9e40] [c01c1a48] _raw_spin_lock+0x1b0/0x1c4
[e92e9e80] [c0348e7c] _spin_lock+0x10/0x20
[e92e9e90] [c0014700] switch_mmu_context+0x2c/0x35c
[e92e9ed0] [c0346778] __sched_text_start+0x1c8/0x6b4
[e92e9f40] [c00107a8] recheck+0x0/0x24

Does anyone have some clue on this?

Thanks,

Jane
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to