Huang Ying
fb842b00c5
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>
2011-01-13 08:03:09 -08:00
..
2010-11-17 13:54:57 -06:00
2010-10-15 15:53:27 +02:00
2011-01-07 15:55:45 +01:00
2011-01-10 08:14:53 -08:00
2011-01-07 17:02:58 -08:00
2011-01-11 11:02:13 -08:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2010-10-30 02:18:32 -04:00
2010-10-30 01:42:19 -04:00
2010-10-30 08:45:42 -04:00
2010-10-30 01:42:19 -04:00
2010-10-30 01:41:57 -04:00
2010-10-30 08:45:43 -04:00
2009-12-12 13:08:14 +01:00
2010-04-02 20:12:00 +02:00
2010-10-27 18:03:08 -07:00
2011-01-07 17:50:28 +11:00
2010-09-14 16:08:45 -07:00
2010-10-15 15:53:27 +02:00
2011-01-06 11:11:50 -08:00
2010-10-29 04:17:06 -04:00
2010-10-27 18:03:12 -07:00
2009-09-18 09:48:52 -07:00
2010-03-06 11:26:46 -08:00
2010-08-09 20:45:05 -07:00
2011-01-11 11:02:13 -08:00
2011-01-07 17:02:58 -08:00
2010-12-24 15:02:40 +01:00
2010-11-10 13:27:50 +01:00
2010-11-10 15:01:34 +01:00
2010-09-09 18:57:24 -07:00
2011-01-07 17:02:58 -08:00
2010-08-17 09:11:52 +02:00
2010-12-16 11:36:43 +01:00
2010-12-18 15:54:48 +01:00
2009-11-18 16:32:12 +01:00
2010-10-29 12:56:13 -04:00
2010-11-19 11:54:40 -08:00
2009-12-03 11:50:11 +01:00
2010-10-26 16:52:13 -07:00
2010-10-01 10:50:58 -07:00
2010-08-17 18:07:43 -07:00
2011-01-07 17:02:58 -08:00
2010-05-21 09:37:31 -07:00
2011-01-07 15:55:45 +01:00
2010-11-12 07:55:31 -08:00
2010-05-04 05:38:16 +02:00
2010-11-10 10:23:58 +01:00
2010-10-18 18:44:26 +02:00
2011-01-13 08:03:08 -08:00
2010-12-23 09:56:00 -05:00
2009-10-11 11:20:58 -07:00
2009-12-14 23:55:32 +01:00
2010-11-26 15:05:34 +01:00
2010-02-25 10:34:26 +01:00
2010-10-27 18:03:09 -07:00
2010-03-30 22:02:32 +09:00
2010-08-04 15:23:14 -07:00
2010-08-11 08:59:22 -07:00
2010-08-11 23:04:20 +09:30
2011-01-07 15:08:51 +01:00
2010-03-30 22:02:32 +09:00
2010-08-19 17:18:02 -07:00
2010-11-15 22:45:22 +01:00
2010-11-10 13:07:06 +01:00
2010-10-21 17:30:06 +02:00
2011-01-13 08:03:09 -08:00
2010-10-15 15:53:27 +02:00
2010-10-27 18:03:12 -07:00
2010-11-12 07:55:31 -08:00
2010-10-07 09:43:11 +02:00
2010-11-29 22:01:56 -08:00
2010-11-29 22:01:55 -08:00
2010-10-07 10:41:08 -07:00
2010-12-17 12:34:08 -08:00
2010-11-29 22:01:58 -08:00
2011-01-07 17:02:58 -08:00
2010-12-17 12:34:20 -08:00
2010-11-05 08:21:34 -07:00
2010-03-30 22:02:32 +09:00
2010-12-17 10:01:09 -08:00
2009-12-14 23:55:33 +01:00
2010-10-19 11:29:56 +02:00
2009-12-14 23:55:33 +01:00
2011-01-07 15:54:36 +01:00
2010-11-30 16:03:35 +01:00
2010-11-23 10:29:08 +01:00
2010-07-17 12:06:22 +02:00
2010-07-17 12:06:22 +02:00
2010-11-30 16:03:35 +01:00
2010-12-19 16:36:30 +01:00
2010-11-18 13:27:46 +01:00
2010-04-23 11:02:02 +02:00
2010-11-18 13:27:47 +01:00
2010-10-24 13:29:01 +02:00
2010-11-11 14:37:23 +01:00
2011-01-07 15:55:10 +01:00
2010-10-27 18:03:12 -07:00
2011-01-13 08:03:08 -08:00
2011-01-13 08:03:08 -08:00
2009-12-14 23:55:33 +01:00
2010-11-29 22:02:40 -08:00
2010-10-26 16:52:15 -07:00
2010-09-23 17:03:55 +10:00
2011-01-13 08:03:07 -08:00
2010-12-10 00:01:06 +01:00
2010-10-15 14:42:24 -07:00
2011-01-13 08:03:08 -08:00
2011-01-07 17:02:58 -08:00
2010-10-14 08:55:27 +02:00
2010-07-27 12:40:54 +02:00
2011-01-06 10:42:43 -08:00
2010-10-18 19:58:56 +02:00
2010-10-27 18:03:17 -07:00
2009-09-23 18:13:10 -07:00
2010-06-16 14:55:34 -07:00
2009-12-02 10:22:59 +01:00
2010-12-29 11:31:38 -08:00
2009-11-12 02:04:55 -08:00
2009-06-18 13:03:55 -07:00
2010-10-26 17:32:41 -07:00
2011-01-07 17:02:58 -08:00
2010-06-29 10:07:14 +02:00
2010-12-20 19:32:04 +01:00