diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2012-08-02 17:43:50 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-09-23 07:43:55 -0700 |
commit | 1331e7a1bbe1f11b19c4327ba0853bee2a606543 (patch) | |
tree | 596d9ed379ef7e2c5d8cf1cc0ba56ade084548ec /kernel/rcutree_trace.c | |
parent | a10d206ef1a83121ab7430cb196e0376a7145b22 (diff) | |
download | linux-1331e7a1bbe1f11b19c4327ba0853bee2a606543.tar.gz linux-1331e7a1bbe1f11b19c4327ba0853bee2a606543.tar.bz2 linux-1331e7a1bbe1f11b19c4327ba0853bee2a606543.zip |
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) struct rcu_state *rsp; for_each_rcu_flavor(rsp) - seq_printf(m, "%s: %c bcc: %d nbd: %lu\n", - rsp->name, rsp->rcu_barrier_in_progress ? 'B' : '.', + seq_printf(m, "%s: bcc: %d nbd: %lu\n", + rsp->name, atomic_read(&rsp->barrier_cpu_count), rsp->n_barrier_done); return 0; |