[tip:core/rcu] rcu: Add diagnostic check for a possible CPU-hotplug race

tip-bot for Paul E. McKenney
2009-08-02T19:41:32Z

Commit-ID: 7256cf0e83bf018be8a81806593aaef7f2437f0b
Gitweb: http://git.kernel.org/tip/7256cf0e83bf018be8a81806593aaef7f2437f0b
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
AuthorDate: Sun, 2 Aug 2009 10:21:10 -0700
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Sun, 2 Aug 2009 21:31:28 +0200

rcu: Add diagnostic check for a possible CPU-hotplug race

Complain if the RCU softirq code ever runs on a CPU that has
not yet been announced to RCU as being online.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

---
kernel/rcutree.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 3313244..b9b1928 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1132,6 +1132,8 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
{
unsigned long flags;

+ WARN_ON_ONCE(rdp->beenonline == 0);
+
/*
* If an RCU GP has gone long enough, go check for dyntick
* idle CPUs and, if needed, send resched IPIs.