summaryrefslogtreecommitdiff
path: root/kernel/rcu/tree_trace.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-06-24 21:20:08 (GMT)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-07-17 21:58:48 (GMT)
commit385b73c06f6a733547d0a7714d0c4cb4c8788b88 (patch)
treee3131e0f720dc99d764ea23c50c80dee1f05e796 /kernel/rcu/tree_trace.c
parentd6ada2cf2f81dab8a231d0ef8fb5dec4f5ac8379 (diff)
downloadlinux-385b73c06f6a733547d0a7714d0c4cb4c8788b88.tar.xz
rcu: Get rid of synchronize_sched_expedited()'s polling loop
This commit gets rid of synchronize_sched_expedited()'s mutex_trylock() polling loop in favor of a funnel-locking scheme based on the rcu_node tree. The work-done check is done at each level of the tree, allowing high-contention situations to be resolved quickly with reasonable levels of mutex contention. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree_trace.c')
-rw-r--r--kernel/rcu/tree_trace.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
index a1ab3a5..d2aab8d 100644
--- a/kernel/rcu/tree_trace.c
+++ b/kernel/rcu/tree_trace.c
@@ -185,12 +185,11 @@ static int show_rcuexp(struct seq_file *m, void *v)
{
struct rcu_state *rsp = (struct rcu_state *)m->private;
- seq_printf(m, "t=%lu tf=%lu wd1=%lu wd2=%lu wd3=%lu n=%lu sc=%lu\n",
+ seq_printf(m, "t=%lu tf=%lu wd1=%lu wd2=%lu n=%lu sc=%lu\n",
rsp->expedited_sequence,
atomic_long_read(&rsp->expedited_tryfail),
atomic_long_read(&rsp->expedited_workdone1),
atomic_long_read(&rsp->expedited_workdone2),
- rsp->expedited_workdone3,
atomic_long_read(&rsp->expedited_normal),
rsp->expedited_sequence / 2);
return 0;