diff options
author | Huang Ying <ying.huang@intel.com> | 2011-01-12 16:59:43 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-13 08:03:09 -0800 |
commit | fb842b00c5eab66ec361b31550aa8a922745ce9e (patch) | |
tree | cef7e6a0bd01849fcfc911f36293304f9ba7b3c2 /kernel/tsacct.c | |
parent | f0f2c2b5b40b5e621a47a6a274117cce77841f1e (diff) |
printk: use RCU to prevent potential lock contention in kmsg_dump
dump_list_lock is used to protect dump_list in kmsg_dumper implementation,
kmsg_dump() uses it to traverse dump_list too. But if there is contention
on the lock, kmsg_dump() will fail, and the valuable kernel message may be
lost.
This patch solves this issue with RCU. Because kmsg_dump() only read the
list, no lock is needed in kmsg_dump(). So that kmsg_dump() will never
fail because of lock contention.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/tsacct.c')
0 files changed, 0 insertions, 0 deletions