diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2012-08-02 20:43:50 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-09-23 10:43:55 -0400 |
commit | 1331e7a1bbe1f11b19c4327ba0853bee2a606543 (patch) | |
tree | 596d9ed379ef7e2c5d8cf1cc0ba56ade084548ec /kernel/rcutree_trace.c | |
parent | a10d206ef1a83121ab7430cb196e0376a7145b22 (diff) |
rcu: Remove _rcu_barrier() dependency on __stop_machine()
Currently, _rcu_barrier() relies on preempt_disable() to prevent
any CPU from going offline, which in turn depends on CPU hotplug's
use of __stop_machine().
This patch therefore makes _rcu_barrier() use get_online_cpus() to
block CPU-hotplug operations. This has the added benefit of removing
the need for _rcu_barrier() to adopt callbacks: Because CPU-hotplug
operations are excluded, there can be no callbacks to adopt. This
commit simplifies the code accordingly.
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/rcutree_trace.c')
-rw-r--r-- | kernel/rcutree_trace.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index abffb486e94e..6a2e52a85d77 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c | |||
@@ -51,8 +51,8 @@ static int show_rcubarrier(struct seq_file *m, void *unused) | |||
51 | struct rcu_state *rsp; | 51 | struct rcu_state *rsp; |
52 | 52 | ||
53 | for_each_rcu_flavor(rsp) | 53 | for_each_rcu_flavor(rsp) |
54 | seq_printf(m, "%s: %c bcc: %d nbd: %lu\n", | 54 | seq_printf(m, "%s: bcc: %d nbd: %lu\n", |
55 | rsp->name, rsp->rcu_barrier_in_progress ? 'B' : '.', | 55 | rsp->name, |
56 | atomic_read(&rsp->barrier_cpu_count), | 56 | atomic_read(&rsp->barrier_cpu_count), |
57 | rsp->n_barrier_done); | 57 | rsp->n_barrier_done); |
58 | return 0; | 58 | return 0; |