]> asedeno.scripts.mit.edu Git - linux.git/commit
rcu: Improve rcu_note_voluntary_context_switch() reporting
authorByungchul Park <byungchul.park@lge.com>
Fri, 11 May 2018 08:30:34 +0000 (17:30 +0900)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 12 Jul 2018 22:39:12 +0000 (15:39 -0700)
commit07f27570dcd148a5f4de7dc3513c1d1cd069b362
tree55e1329fcf74946468664d7acce77e1bbefbc9ea
parent3949fa9bac090ad217534c30bc3b6572289abf21
rcu: Improve rcu_note_voluntary_context_switch() reporting

We expect a quiescent state of TASKS_RCU when cond_resched_tasks_rcu_qs()
is called, no matter whether it actually be scheduled or not. However,
it currently doesn't report the quiescent state when the task enters
into __schedule() as it's called with preempt = true. So make it report
the quiescent state unconditionally when cond_resched_tasks_rcu_qs() is
called.

And in TINY_RCU, even though the quiescent state of rcu_bh also should
be reported when the tick interrupt comes from user, it doesn't. So make
it reported.

Lastly in TREE_RCU, rcu_note_voluntary_context_switch() should be
reported when the tick interrupt comes from not only user but also idle,
as an extended quiescent state.

Signed-off-by: Byungchul Park <byungchul.park@lge.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
[ paulmck: Simplify rcutiny portion given no RCU-tasks for !PREEMPT. ]
include/linux/rcupdate.h
kernel/rcu/tiny.c
kernel/rcu/tree.c