KOSAKI Motohiro
a0b0f58cdd
ksm: annotate ksm_thread_mutex is no deadlock source
...
commit 62b61f611e ("ksm: memory hotremove migration only") caused the
following new lockdep warning.
=======================================================
[ INFO: possible circular locking dependency detected ]
-------------------------------------------------------
bash/1621 is trying to acquire lock:
((memory_chain).rwsem){.+.+.+}, at: [<ffffffff81079339>]
__blocking_notifier_call_chain+0x69/0xc0
but task is already holding lock:
(ksm_thread_mutex){+.+.+.}, at: [<ffffffff8113a3aa>]
ksm_memory_callback+0x3a/0xc0
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (ksm_thread_mutex){+.+.+.}:
[<ffffffff8108b70a>] lock_acquire+0xaa/0x140
[<ffffffff81505d74>] __mutex_lock_common+0x44/0x3f0
[<ffffffff81506228>] mutex_lock_nested+0x48/0x60
[<ffffffff8113a3aa>] ksm_memory_callback+0x3a/0xc0
[<ffffffff8150c21c>] notifier_call_chain+0x8c/0xe0
[<ffffffff8107934e>] __blocking_notifier_call_chain+0x7e/0xc0
[<ffffffff810793a6>] blocking_notifier_call_chain+0x16/0x20
[<ffffffff813afbfb>] memory_notify+0x1b/0x20
[<ffffffff81141b7c>] remove_memory+0x1cc/0x5f0
[<ffffffff813af53d>] memory_block_change_state+0xfd/0x1a0
[<ffffffff813afd62>] store_mem_state+0xe2/0xf0
[<ffffffff813a0bb0>] sysdev_store+0x20/0x30
[<ffffffff811bc116>] sysfs_write_file+0xe6/0x170
[<ffffffff8114f398>] vfs_write+0xc8/0x190
[<ffffffff8114fc14>] sys_write+0x54/0x90
[<ffffffff810028b2>] system_call_fastpath+0x16/0x1b
-> #0 ((memory_chain).rwsem){.+.+.+}:
[<ffffffff8108b5ba>] __lock_acquire+0x155a/0x1600
[<ffffffff8108b70a>] lock_acquire+0xaa/0x140
[<ffffffff81506601>] down_read+0x51/0xa0
[<ffffffff81079339>] __blocking_notifier_call_chain+0x69/0xc0
[<ffffffff810793a6>] blocking_notifier_call_chain+0x16/0x20
[<ffffffff813afbfb>] memory_notify+0x1b/0x20
[<ffffffff81141f1e>] remove_memory+0x56e/0x5f0
[<ffffffff813af53d>] memory_block_change_state+0xfd/0x1a0
[<ffffffff813afd62>] store_mem_state+0xe2/0xf0
[<ffffffff813a0bb0>] sysdev_store+0x20/0x30
[<ffffffff811bc116>] sysfs_write_file+0xe6/0x170
[<ffffffff8114f398>] vfs_write+0xc8/0x190
[<ffffffff8114fc14>] sys_write+0x54/0x90
[<ffffffff810028b2>] system_call_fastpath+0x16/0x1b
But it's a false positive. Both memory_chain.rwsem and ksm_thread_mutex
have an outer lock (mem_hotplug_mutex). So they cannot deadlock.
Thus, This patch annotate ksm_thread_mutex is not deadlock source.
[akpm@linux-foundation.org: update comment, from Hugh]
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-12-02 14:51:15 -08:00
..
2010-10-26 17:58:44 -07:00
2010-08-27 11:13:47 -07:00
2010-09-09 18:57:25 -07:00
2010-09-09 18:57:24 -07:00
2009-04-01 08:59:13 -07:00
2010-10-26 16:52:08 -07:00
2010-03-06 11:26:25 -08:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-11-12 07:55:32 -08:00
2010-09-25 09:34:58 -07:00
2010-10-27 18:03:05 -07:00
2010-12-02 14:51:14 -08:00
2010-08-11 09:23:11 +02:00
2010-08-09 20:44:54 -07:00
2010-10-26 16:52:11 -07:00
2010-10-22 17:31:36 -07:00
2009-09-21 15:14:57 +02:00
2010-03-30 22:02:32 +09:00
2009-06-24 15:13:48 +09:00
2010-08-08 21:57:23 +01:00
2010-12-02 14:51:15 -08:00
2010-10-27 17:29:01 +01:00
2009-12-16 12:20:00 +01:00
2010-10-02 10:26:05 +03:00
2010-10-11 16:00:52 -07:00
2010-11-25 06:50:45 +09:00
2010-12-02 14:51:15 -08:00
2010-12-02 14:51:15 -08:00
2010-10-26 16:52:13 -07:00
2010-12-02 14:51:14 -08:00
2009-09-22 07:17:35 -07:00
2010-10-26 16:52:11 -07:00
2010-05-25 08:06:58 -07:00
2010-09-09 09:05:06 -07:00
2010-10-30 08:45:43 -04:00
2010-03-24 16:31:21 -07:00
2010-03-30 22:02:32 +09:00
2010-09-09 18:57:25 -07:00
2010-11-09 10:19:38 -08:00
2010-10-26 16:52:08 -07:00
2010-05-21 18:31:21 -04:00
2010-11-25 06:50:38 +09:00
2010-10-26 16:52:05 -07:00
2010-11-25 06:50:45 +09:00
2010-07-19 11:54:14 +01:00
2010-08-07 18:20:39 +02:00
2010-10-26 16:52:11 -07:00
2010-10-26 16:52:08 -07:00
2010-11-25 06:50:46 +09:00
2010-10-02 10:28:42 +03:00
2010-05-01 08:30:50 +02:00
2010-10-24 13:41:39 -07:00
2010-03-30 22:02:32 +09:00
2010-05-25 08:07:00 -07:00
2010-10-26 16:52:10 -07:00
2010-10-29 04:16:31 -04:00
2010-10-26 16:52:12 -07:00
2010-10-02 10:24:28 +03:00
2010-11-14 16:53:11 +02:00
2010-08-27 11:12:29 -07:00
2010-05-25 08:06:56 -07:00
2010-03-30 22:02:32 +09:00
2010-10-27 18:03:17 -07:00
2010-10-26 16:52:11 -07:00
2009-06-23 12:50:05 -07:00
2010-08-09 16:47:39 -04:00
2010-10-24 10:51:24 +02:00
2010-12-02 14:51:15 -08:00
2010-11-12 07:55:31 -08:00
2010-12-02 14:51:14 -08:00