100分请教高手一个死锁的问题

karlzheng 2012-07-05 02:48:47
发现一个dead lock 的log如:
http://blog.csdn.net/zhengkarl/article/details/7718618
所示

感到不理解的是怎么看出存在下面的锁链:
&pch->upl --> &(&ppp->wlock)->rlock --> &(&mx_tty[i].tty_spinlock)->rlock

请高手解答。谢谢!
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
karlzheng 2012-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

PHP code
{3}[ 140.037940] pppd/2978 [HC0[0]:SC0[4]:HE1:SE0] is trying to acquire:
{3}[ 140.044336] (&(&pch->downl)->rlock){+.....}, at: [<c025e2c4>] ppp_push+0x44/0xac
{3}[ 140.052062……
[/Quote]

1 lock held by pppd/2978:
#0: (&(&ppp->wlock)->rlock){+.....}, at: [<c025f078>] ppp_xmit_process+0x1c/0xac
怎么样导致死锁?
morris88 2012-07-05
  • 打赏
  • 举报
回复
 {3}[  140.037940] pppd/2978 [HC0[0]:SC0[4]:HE1:SE0] is trying to acquire:
{3}[ 140.044336] (&(&pch->downl)->rlock){+.....}, at: [<c025e2c4>] ppp_push+0x44/0xac
{3}[ 140.052062] and this task is already holding:
{3}[ 140.058394] (&(&ppp->wlock)->rlock){+.....}, at: [<c025f078>] ppp_xmit_process+0x1c/0xac
{3}[ 140.066814] which would create a new lock dependency:
{3}[ 140.072099] (&(&ppp->wlock)->rlock){+.....} -> (&(&pch->downl)->rlock){+.....}
{3}[ 140.157440] to a SOFTIRQ-READ-irq-unsafe lock:
{3}[ 140.163931] (&(&mx_tty[i].tty_spinlock)->rlock){+.+...}
{3}[ 140.264185] Chain exists of:
{3}[ 140.264189] &pch->upl --> &(&ppp->wlock)->rlock --> &(&mx_tty[i].tty_spinlock)->rlock
{3}[ 140.289362] ---- ----
{3}[ 140.294061] lock(&(&mx_tty[i].tty_spinlock)->rlock);
{3}[ 140.305606] lock(&pch->upl);
{3}[ 140.311422] lock(&(&ppp->wlock)->rlock);
{3}[ 140.331370] 1 lock held by pppd/2978:
{3}[ 140.335204] #0: (&(&ppp->wlock)->rlock){+.....}, at: [<c025f078>] ppp_xmit_process+0x1c/0xac
{3}[ 140.819549]
{3}[ 140.821286] -> (&(&ppp->wlock)->rlock){+.....} ops: 6 {
{3}[ 141.114411] the dependencies between the lock to be acquired and SOFTIRQ-READ-irq-unsafe lock:
{3}[ 141.125001] -> (&(&mx_tty[i].tty_spinlock)->rlock){+.+...} ops: 516 {
{3}[ 141.639982]
{3}[ 141.641718] -> (&(&ap->xmit_lock)->rlock){+.....} ops: 6 {
{3}[ 141.932932]
{3}[ 141.934665] -> (&(&pch->downl)->rlock){+.....} ops: 4 {
morris88 2012-07-05
  • 打赏
  • 举报
回复
楼上说的很有道理
karlzheng 2012-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
C/C++ code

/* 直接贴这些锁的代码。*/
[/Quote]
代码很多,连log在帖子上都放不下,只能放到blog上。
Wenxy1 2012-07-05
  • 打赏
  • 举报
回复


/* 直接贴这些锁的代码。*/

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧