aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2011-06-21 04:29:39 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-09-29 00:38:16 -0400
commite0f23060adfa3f27beaa7918eff70258b88471b6 (patch)
treef0e8ed4ad97a1fc4d3c2c5af639a63063ae52e32
parent72fe701b70e6ced35d734b676c13efbc8fc769a9 (diff)
rcu: Update comments to reflect softirqs vs. kthreads
We now have kthreads only for flavors of RCU that support boosting, so update the now-misleading comments accordingly. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--kernel/rcutree.c23
-rw-r--r--kernel/rcutree_plugin.h3
2 files changed, 14 insertions, 12 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index eb6e731088a0..4e24399cabcf 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -198,7 +198,7 @@ DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = {
198}; 198};
199#endif /* #ifdef CONFIG_NO_HZ */ 199#endif /* #ifdef CONFIG_NO_HZ */
200 200
201static int blimit = 10; /* Maximum callbacks per softirq. */ 201static int blimit = 10; /* Maximum callbacks per rcu_do_batch. */
202static int qhimark = 10000; /* If this many pending, ignore blimit. */ 202static int qhimark = 10000; /* If this many pending, ignore blimit. */
203static int qlowmark = 100; /* Once only this many pending, use blimit. */ 203static int qlowmark = 100; /* Once only this many pending, use blimit. */
204 204
@@ -1261,7 +1261,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
1261 1261
1262 local_irq_restore(flags); 1262 local_irq_restore(flags);
1263 1263
1264 /* Re-raise the RCU softirq if there are callbacks remaining. */ 1264 /* Re-invoke RCU core processing if there are callbacks remaining. */
1265 if (cpu_has_callbacks_ready_to_invoke(rdp)) 1265 if (cpu_has_callbacks_ready_to_invoke(rdp))
1266 invoke_rcu_core(); 1266 invoke_rcu_core();
1267} 1267}
@@ -1269,7 +1269,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
1269/* 1269/*
1270 * Check to see if this CPU is in a non-context-switch quiescent state 1270 * Check to see if this CPU is in a non-context-switch quiescent state
1271 * (user mode or idle loop for rcu, non-softirq execution for rcu_bh). 1271 * (user mode or idle loop for rcu, non-softirq execution for rcu_bh).
1272 * Also schedule the RCU softirq handler. 1272 * Also schedule RCU core processing.
1273 * 1273 *
1274 * This function must be called with hardirqs disabled. It is normally 1274 * This function must be called with hardirqs disabled. It is normally
1275 * invoked from the scheduling-clock interrupt. If rcu_pending returns 1275 * invoked from the scheduling-clock interrupt. If rcu_pending returns
@@ -1448,9 +1448,9 @@ static void force_quiescent_state(struct rcu_state *rsp, int relaxed)
1448#endif /* #else #ifdef CONFIG_SMP */ 1448#endif /* #else #ifdef CONFIG_SMP */
1449 1449
1450/* 1450/*
1451 * This does the RCU processing work from softirq context for the 1451 * This does the RCU core processing work for the specified rcu_state
1452 * specified rcu_state and rcu_data structures. This may be called 1452 * and rcu_data structures. This may be called only from the CPU to
1453 * only from the CPU to whom the rdp belongs. 1453 * whom the rdp belongs.
1454 */ 1454 */
1455static void 1455static void
1456__rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp) 1456__rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
@@ -1487,7 +1487,7 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
1487} 1487}
1488 1488
1489/* 1489/*
1490 * Do softirq processing for the current CPU. 1490 * Do RCU core processing for the current CPU.
1491 */ 1491 */
1492static void rcu_process_callbacks(struct softirq_action *unused) 1492static void rcu_process_callbacks(struct softirq_action *unused)
1493{ 1493{
@@ -1503,10 +1503,11 @@ static void rcu_process_callbacks(struct softirq_action *unused)
1503} 1503}
1504 1504
1505/* 1505/*
1506 * Wake up the current CPU's kthread. This replaces raise_softirq() 1506 * Schedule RCU callback invocation. If the specified type of RCU
1507 * in earlier versions of RCU. Note that because we are running on 1507 * does not support RCU priority boosting, just do a direct call,
1508 * the current CPU with interrupts disabled, the rcu_cpu_kthread_task 1508 * otherwise wake up the per-CPU kernel kthread. Note that because we
1509 * cannot disappear out from under us. 1509 * are running on the current CPU with interrupts disabled, the
1510 * rcu_cpu_kthread_task cannot disappear out from under us.
1510 */ 1511 */
1511static void invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp) 1512static void invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
1512{ 1513{
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index a90bf3c17492..ecd48a2e3eeb 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -1478,7 +1478,8 @@ static int rcu_cpu_kthread_should_stop(int cpu)
1478 1478
1479/* 1479/*
1480 * Per-CPU kernel thread that invokes RCU callbacks. This replaces the 1480 * Per-CPU kernel thread that invokes RCU callbacks. This replaces the
1481 * earlier RCU softirq. 1481 * RCU softirq used in flavors and configurations of RCU that do not
1482 * support RCU priority boosting.
1482 */ 1483 */
1483static int rcu_cpu_kthread(void *arg) 1484static int rcu_cpu_kthread(void *arg)
1484{ 1485{