summaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree_exp.h
diff options
context:
space:
mode:
authorPaul E. McKenney2016-11-30 20:21:21 +0100
committerPaul E. McKenney2017-01-23 20:44:18 +0100
commit3a19b46a5c17b12ef0691df19c676ba3da330a57 (patch)
treeb9effecf9064beba8b6d55fa5a7c1fd1b56a72c4 /kernel/rcu/tree_exp.h
parentrcu: Abstract extended quiescent state determination (diff)
downloadkernel-qcow2-linux-3a19b46a5c17b12ef0691df19c676ba3da330a57.tar.gz
kernel-qcow2-linux-3a19b46a5c17b12ef0691df19c676ba3da330a57.tar.xz
kernel-qcow2-linux-3a19b46a5c17b12ef0691df19c676ba3da330a57.zip
rcu: Check cond_resched_rcu_qs() state less often to reduce GP overhead
Commit 4a81e8328d37 ("rcu: Reduce overhead of cond_resched() checks for RCU") moved quiescent-state generation out of cond_resched() and commit bde6c3aa9930 ("rcu: Provide cond_resched_rcu_qs() to force quiescent states in long loops") introduced cond_resched_rcu_qs(), and commit 5cd37193ce85 ("rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors") introduced the per-CPU rcu_qs_ctr variable, which is frequently polled by the RCU core state machine. This frequent polling can increase grace-period rate, which in turn increases grace-period overhead, which is visible in some benchmarks (for example, the "open1" benchmark in Anton Blanchard's "will it scale" suite). This commit therefore reduces the rate at which rcu_qs_ctr is polled by moving that polling into the force-quiescent-state (FQS) machinery, and by further polling it only after the grace period has been in effect for at least jiffies_till_sched_qs jiffies. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/rcu/tree_exp.h')
0 files changed, 0 insertions, 0 deletions