Mojiong Qiu
772aebcefe
xen/events: fix RCU warning, or Call idle notifier after irq_enter()
exit_idle() should be called after irq_enter(), otherwise it throws:
[ INFO: suspicious RCU usage. ]
3.6.5 #1 Not tainted
-------------------------------
include/linux/rcupdate.h:725 rcu_read_lock() used illegally while idle!
other info that might help us debug this:
RCU used illegally from idle CPU!
rcu_scheduler_active = 1, debug_locks = 1
RCU used illegally from extended quiescent state!
1 lock held by swapper/0/0:
#0: (rcu_read_lock){......}, at: [<ffffffff810e9fe0>] __atomic_notifier_call_chain+0x0/0x140
stack backtrace:
Pid: 0, comm: swapper/0 Not tainted 3.6.5 #1
Call Trace:
<IRQ> [<ffffffff811259a2>] lockdep_rcu_suspicious+0xe2/0x130
[<ffffffff810ea10c>] __atomic_notifier_call_chain+0x12c/0x140
[<ffffffff810e9fe0>] ? atomic_notifier_chain_unregister+0x90/0x90
[<ffffffff811216cd>] ? trace_hardirqs_off+0xd/0x10
[<ffffffff810ea136>] atomic_notifier_call_chain+0x16/0x20
[<ffffffff810777c3>] exit_idle+0x43/0x50
[<ffffffff81568865>] xen_evtchn_do_upcall+0x25/0x50
[<ffffffff81aa690e>] xen_do_hypervisor_callback+0x1e/0x30
<EOI> [<ffffffff810013aa>] ? hypercall_page+0x3aa/0x1000
[<ffffffff810013aa>] ? hypercall_page+0x3aa/0x1000
[<ffffffff81061540>] ? xen_safe_halt+0x10/0x20
[<ffffffff81075cfa>] ? default_idle+0xba/0x570
[<ffffffff810778af>] ? cpu_idle+0xdf/0x140
[<ffffffff81a4d881>] ? rest_init+0x135/0x144
[<ffffffff81a4d74c>] ? csum_partial_copy_generic+0x16c/0x16c
[<ffffffff82520c45>] ? start_kernel+0x3db/0x3e8
[<ffffffff8252066a>] ? repair_env_string+0x5a/0x5a
[<ffffffff82520356>] ? x86_64_start_reservations+0x131/0x135
[<ffffffff82524aca>] ? xen_start_kernel+0x465/0x46
Git commit 98ad1cc14a
Author: Frederic Weisbecker <fweisbec@gmail.com>
Date: Fri Oct 7 18:22:09 2011 +0200
x86: Call idle notifier after irq_enter()
did this, but it missed the Xen code.
Signed-off-by: Mojiong Qiu <mjqiu@tencent.com>
Cc: stable@vger.kernel.org # from 3.3 and newer.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
2012-11-07 10:41:27 -05:00
..
2012-10-09 01:47:35 -04:00
2012-10-05 22:32:05 -03:00
2012-10-09 16:23:02 +09:00
2012-10-11 09:04:23 +09:00
2012-10-11 18:41:29 +08:00
2012-10-08 14:58:56 -07:00
2012-10-08 22:52:54 -04:00
2012-10-07 20:55:16 +09:00
2012-10-10 11:10:41 +09:00
2012-10-06 03:16:12 +09:00
2012-10-09 18:26:28 +02:00
2012-10-09 16:08:04 +09:00
2012-10-12 10:21:02 +09:00
2012-10-11 00:45:21 -07:00
2012-10-13 11:27:59 +09:00
2012-10-11 10:27:51 +09:00
2012-10-10 19:52:19 +09:00
2012-10-30 09:29:07 -04:00
2012-10-08 06:33:44 +09:00
2012-10-10 22:50:45 -04:00
2012-10-10 20:14:07 +09:00
2012-10-07 21:04:56 +09:00
2012-10-06 03:16:12 +09:00
2012-10-13 13:22:01 -07:00
2012-10-12 12:39:17 +09:00
2012-10-07 17:29:24 +09:00
2012-10-10 20:15:24 +09:00
2012-10-11 17:21:40 -04:00
2012-10-09 15:08:42 +01:00
2012-10-12 13:56:52 -04:00
2012-10-09 16:22:18 +09:00
2012-10-09 16:11:46 +09:00
2012-10-06 03:16:12 +09:00
2012-10-10 08:57:26 +02:00
2012-10-09 01:47:35 -04:00
2012-10-13 11:27:59 +09:00
2012-10-06 03:04:56 +09:00
2012-10-10 20:15:24 +09:00
2012-10-11 08:50:15 +09:00
2012-10-07 21:04:56 +09:00
2012-10-07 21:04:56 +09:00
2012-10-11 08:50:16 +09:00
2012-10-09 14:17:00 +02:00
2012-10-13 10:57:01 +09:00
2012-10-10 11:10:41 +09:00
2012-10-13 11:27:59 +09:00
2012-10-11 09:04:23 +09:00
2012-10-09 01:35:52 -04:00
2012-10-13 11:16:58 +09:00
2012-10-09 16:22:19 +09:00
2012-10-11 15:18:49 -04:00
2012-10-10 09:10:32 -06:00
2012-10-10 19:52:19 +09:00
2012-10-30 09:28:17 -04:00
2012-10-07 21:06:10 +09:00
2012-11-07 10:41:27 -05:00