Re: 3.4+ tty lockdep trace
From: Sasha Levin
Date: Thu May 24 2012 - 02:14:15 EST
On Wed, May 23, 2012 at 3:06 AM, Ming Lei <tom.leiming@xxxxxxxxx> wrote:
> Hi Dave,
>
> On Wed, May 23, 2012 at 8:26 AM, Dave Jones <davej@xxxxxxxxxx> wrote:
>> From v3.4-4413-gfb09baf
>>
>> [ 43.374948] =============================================
>> [ 43.374991] [ INFO: possible recursive locking detected ]
>> [ 43.375035] 3.4.0+ #24 Not tainted
>> [ 43.375065] ---------------------------------------------
>> [ 43.375108] sshd/639 is trying to acquire lock:
>> [ 43.375157] (&tty->legacy_mutex){+.+.+.}, at: [<ffffffff81656d57>] tty_lock+0x37/0x80
>> [ 43.375216]
>> [ 43.375216] but task is already holding lock:
>> [ 43.375268] (&tty->legacy_mutex){+.+.+.}, at: [<ffffffff81656d57>] tty_lock+0x37/0x80
>> [ 43.375327]
>> [ 43.375327] other info that might help us debug this:
>> [ 43.375378] Possible unsafe locking scenario:
>> [ 43.375378]
>> [ 43.375425] CPU0
>> [ 43.375447] ----
>> [ 43.375471] lock(&tty->legacy_mutex);
>> [ 43.375504] lock(&tty->legacy_mutex);
>> [ 43.375536]
>> [ 43.375536] *** DEADLOCK ***
>> [ 43.375536]
>> [ 43.375583] May be due to missing lock nesting notation
>> [ 43.375583]
>> [ 43.375637] 2 locks held by sshd/639:
>> [ 43.375675] #0: (tty_mutex){+.+.+.}, at: [<ffffffff813b0243>] tty_release+0x1c3/0x5d0
>> [ 43.375740] #1: (&tty->legacy_mutex){+.+.+.}, at: [<ffffffff81656d57>] tty_lock+0x37/0x80
>> [ 43.375802]
>> [ 43.375802] stack backtrace:
>> [ 43.375841] Pid: 639, comm: sshd Not tainted 3.4.0+ #24
>> [ 43.375882] Call Trace:
>> [ 43.377572] [<ffffffff810b4604>] __lock_acquire+0x1584/0x1aa0
>> [ 43.379286] [<ffffffff810b51e2>] lock_acquire+0x92/0x1f0
>> [ 43.380995] [<ffffffff81656d57>] ? tty_lock+0x37/0x80
>> [ 43.382700] [<ffffffff816534f1>] mutex_lock_nested+0x71/0x3b0
>> [ 43.384403] [<ffffffff81656d57>] ? tty_lock+0x37/0x80
>> [ 43.386094] [<ffffffff81085521>] ? get_parent_ip+0x11/0x50
>> [ 43.387794] [<ffffffff81656d57>] ? tty_lock+0x37/0x80
>> [ 43.389480] [<ffffffff8165a68d>] ? sub_preempt_count+0x6d/0xd0
>> [ 43.391176] [<ffffffff813b0243>] ? tty_release+0x1c3/0x5d0
>> [ 43.393003] [<ffffffff81656d57>] tty_lock+0x37/0x80
>> [ 43.394867] [<ffffffff81656dc3>] tty_lock_pair+0x23/0x5c
>> [ 43.396671] [<ffffffff813b024e>] tty_release+0x1ce/0x5d0
>> [ 43.398462] [<ffffffff811a765c>] fput+0x12c/0x300
>> [ 43.400292] [<ffffffff811a23a9>] filp_close+0x69/0xa0
>> [ 43.402084] [<ffffffff811a2f2d>] sys_close+0xad/0x1a0
>> [ 43.403871] [<ffffffff8165e652>] system_call_fastpath+0x16/0x1b
>
> We have one patch to address the problem, could you test it from the link below?
>
> http://marc.info/?l=linux-kernel&m=133765211309247&w=2
I'm still seeing the warning with this patch:
[ 83.032572] trinity (4823): Using mlock ulimits for SHM_HUGETLB is deprecated
[ 83.060427] type=1400 audit(1.288:2): op=linkat action=denied
pid=4820 comm="trinity" path=2F7472696E6974792F746D702F03 dev="9p"
ino=104345
[ 83.190164]
[ 83.191412] =============================================
[ 83.196004] [ INFO: possible recursive locking detected ]
[ 83.196004] 3.4.0-next-20120523-sasha-00004-gc6cd556 #272 Tainted:
G W
[ 83.196004] ---------------------------------------------
[ 83.196004] trinity/4823 is trying to acquire lock:
[ 83.196004] (&tty->legacy_mutex){+.+.+.}, at: [<ffffffff82f6a5db>]
tty_lock_nested+0x7b/0x90
[ 83.196004]
[ 83.196004] but task is already holding lock:
[ 83.196004] (&tty->legacy_mutex){+.+.+.}, at: [<ffffffff82f6a5db>]
tty_lock_nested+0x7b/0x90
[ 83.196004]
[ 83.196004] other info that might help us debug this:
[ 83.196004] Possible unsafe locking scenario:
[ 83.196004]
[ 83.196004] CPU0
[ 83.196004] ----
[ 83.196004] lock(&tty->legacy_mutex);
[ 83.196004] lock(&tty->legacy_mutex);
[ 83.196004]
[ 83.196004] *** DEADLOCK ***
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/