Re: Linus GIT - INFO: possible circular locking dependency detected

From: Peter Zijlstra
Date: Wed Nov 09 2011 - 14:52:29 EST


On Wed, 2011-11-09 at 19:11 +0000, Luis Henriques wrote:
> [ 12.948038] -> #0 (&sig->cred_guard_mutex){+.+.+.}:
> [ 12.948038] [<ffffffff8108ff9f>] __lock_acquire+0x17bf/0x2020
> [ 12.948038] [<ffffffff81092e4f>] lock_acquire+0xaf/0x1f0
> [ 12.948038] [<ffffffff8135b2a5>] __mutex_lock_common+0x65/0x4d0
> [ 12.948038] [<ffffffff8135b76b>] mutex_lock_killable_nested+0x1b/0x20
> [ 12.948038] [<ffffffff811b301e>] lock_trace+0x2e/0x80
> [ 12.948038] [<ffffffff811b73ab>] proc_readfd_common+0x5b/0x4b0
> [ 12.948038] [<ffffffff811b7835>] proc_readfd+0x15/0x20
> [ 12.948038] [<ffffffff8115f8f0>] vfs_readdir+0xb0/0xd0
> [ 12.948038] [<ffffffff8115fa09>] sys_getdents+0x89/0x100
> [ 12.948038] [<ffffffff8135e8c2>] system_call_fastpath+0x16/0x1b
>
> sb->s_type->i_mutex_key is shown as being acquired in the execve path,
> which seems to be wrong -- it was acquired in the vfs_readdir (on the 2nd
> trace).
>
> This means that the initial analysis from Vasiliy is incorrect, as he
> assumed the execve path. Or Am I interpreting this log incorrectly?
> (Probably I am...).

->#0 shows where sig->cred_guard_mutex was taken, as it was the first
lock there is no nesting yet and therefore the ->i_mutex_key#6 thing
should not be associated with this stacktrace.

->#1 shows where ->i_mutex_key#6 was taken while holding
->cred_guard_mutex (but doesn't explicitly show where that was taken).

Mostly ->#0 information is useless in lockdep reports and can be safely
ignored.
--
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/