Re: lockdep: strange %s#5 lock name

Tejun Heo <[email protected]>
Newsgroups org.kernel.vger.trinity,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Thu, Feb 13, 2014 at 12:35:24PM +0800, Li Zhong wrote:
> [    5.251993] ------------[ cut here ]------------
> [    5.252019] WARNING: CPU: 0 PID: 221 at kernel/locking/lockdep.c:710 __lock_acquire+0x1761/0x1f60()
> [    5.252019] Modules linked in: e1000
> [    5.252019] CPU: 0 PID: 221 Comm: lvm Not tainted 3.14.0-rc2-next-20140212 #1
> [    5.252019] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
> [    5.252019]  0000000000000009 ffff880118e91938 ffffffff8155fe12 ffff880118e91978
> [    5.252019]  ffffffff8105c195 ffff880118e91958 ffffffff81eb33d0 0000000000000002
> [    5.252019]  ffff880118dd2318 0000000000000000 0000000000000000 ffff880118e91988
> [    5.252019] Call Trace:
> [    5.252019]  [<ffffffff8155fe12>] dump_stack+0x19/0x1b
> [    5.252019]  [<ffffffff8105c195>] warn_slowpath_common+0x85/0xb0
> [    5.252019]  [<ffffffff8105c1da>] warn_slowpath_null+0x1a/0x20
> [    5.252019]  [<ffffffff810a1721>] __lock_acquire+0x1761/0x1f60
> [    5.252019]  [<ffffffff8109ec2e>] ? mark_held_locks+0xae/0x120
> [    5.252019]  [<ffffffff8109ef4e>] ? debug_check_no_locks_freed+0x8e/0x160
> [    5.252019]  [<ffffffff810a264c>] ? lockdep_init_map+0xac/0x600
> [    5.252019]  [<ffffffff810a251a>] lock_acquire+0x9a/0x120
> [    5.252019]  [<ffffffff810793f5>] ? flush_workqueue+0x5/0x750
> [    5.252019]  [<ffffffff810794f9>] flush_workqueue+0x109/0x750
> [    5.252019]  [<ffffffff810793f5>] ? flush_workqueue+0x5/0x750
> [    5.252019]  [<ffffffff81566890>] ? _raw_spin_unlock_irq+0x30/0x40
> [    5.252019]  [<ffffffff810b7720>] ? srcu_reschedule+0xe0/0xf0
> [    5.252019]  [<ffffffff81405889>] dm_suspend+0xe9/0x1e0
> [    5.252019]  [<ffffffff8140a853>] dev_suspend+0x1e3/0x270
> [    5.252019]  [<ffffffff8140a670>] ? table_load+0x350/0x350
> [    5.252019]  [<ffffffff8140b40c>] ctl_ioctl+0x26c/0x510
> [    5.252019]  [<ffffffff810a03dc>] ? __lock_acquire+0x41c/0x1f60
> [    5.252019]  [<ffffffff810923d8>] ? vtime_account_user+0x98/0xb0
> [    5.252019]  [<ffffffff8140b6c3>] dm_ctl_ioctl+0x13/0x20
> [    5.252019]  [<ffffffff811986c8>] do_vfs_ioctl+0x88/0x570
> [    5.252019]  [<ffffffff811a5579>] ? __fget_light+0x129/0x150
> [    5.252019]  [<ffffffff81198c41>] SyS_ioctl+0x91/0xb0
> [    5.252019]  [<ffffffff8157049d>] tracesys+0xcf/0xd4
> [    5.252019] ---[ end trace ff1fa506f34be3bc ]---
> 
> It seems to me that when the second time alloc_workqueue() is called
> from the same code path, it would have two locks with the same key, but
> not the same &wq->name, which doesn't meet lockdep's assumption.

Dang...  I reverted the previous patch for now.  Peter, does this
approach sound good to you?

Thanks.

-- 
tejun
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.