aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-10-20 15:06:18 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-11-30 01:01:59 -0500
commit2d999e03b7c8305b4385dd20992e4ed3e827177b (patch)
tree3402eeb03a6cc7ac8013974983f09e46f5ecd562 /kernel/rcutree.c
parent29494be71afe2a16ad04e344306a620d7cc22d06 (diff)
rcu: update documentation/comments for Lai's adoption patch
Lai's RCU-callback immediate-adoption patch changes the RCU tracing output, so update tracing.txt. Also update a few comments to clarify the synchronization design. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 669d7fe049d1..120820ffc657 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1668,7 +1668,9 @@ static void _rcu_barrier(struct rcu_state *rsp,
1668 * decrement rcu_barrier_cpu_count -- otherwise the first CPU 1668 * decrement rcu_barrier_cpu_count -- otherwise the first CPU
1669 * might complete its grace period before all of the other CPUs 1669 * might complete its grace period before all of the other CPUs
1670 * did their increment, causing this function to return too 1670 * did their increment, causing this function to return too
1671 * early. 1671 * early. Note that on_each_cpu() disables irqs, which prevents
1672 * any CPUs from coming online or going offline until each online
1673 * CPU has queued its RCU-barrier callback.
1672 */ 1674 */
1673 atomic_set(&rcu_barrier_cpu_count, 1); 1675 atomic_set(&rcu_barrier_cpu_count, 1);
1674 on_each_cpu(rcu_barrier_func, (void *)call_rcu_func, 1); 1676 on_each_cpu(rcu_barrier_func, (void *)call_rcu_func, 1);
@@ -1797,9 +1799,9 @@ static int __cpuinit rcu_cpu_notify(struct notifier_block *self,
1797 case CPU_DYING: 1799 case CPU_DYING:
1798 case CPU_DYING_FROZEN: 1800 case CPU_DYING_FROZEN:
1799 /* 1801 /*
1800 * The whole machine is "stopped" except this cpu, so we can 1802 * The whole machine is "stopped" except this CPU, so we can
1801 * touch any data without introducing corruption. And we send 1803 * touch any data without introducing corruption. We send the
1802 * the callbacks to an attribute chosen online cpu. 1804 * dying CPU's callbacks to an arbitrarily chosen online CPU.
1803 */ 1805 */
1804 rcu_send_cbs_to_online(&rcu_bh_state); 1806 rcu_send_cbs_to_online(&rcu_bh_state);
1805 rcu_send_cbs_to_online(&rcu_sched_state); 1807 rcu_send_cbs_to_online(&rcu_sched_state);