kernel_optimize_test/kernel/rcu
Paul E. McKenney c06aed0e31 rcu: Compute jiffies_till_sched_qs from other kernel parameters
The jiffies_till_sched_qs value used to determine how old a grace period
must be before RCU enlists the help of the scheduler to force a quiescent
state on the holdout CPU.  Currently, this defaults to HZ/10 regardless of
system size and may be set only at boot time.  This can be a problem for
very large systems, because if the values of the jiffies_till_first_fqs
and jiffies_till_next_fqs kernel parameters are left at their defaults,
they are calculated to increase as the number of CPUs actually configured
on the system increases.  Thus, on a sufficiently large system, RCU would
enlist the help of the scheduler before the grace-period kthread had a
chance to scan for idle CPUs, which wastes CPU time.

This commit therefore allows jiffies_till_sched_qs to be set, if desired,
but if left as default, computes is as jiffies_till_first_fqs plus twice
jiffies_till_next_fqs, thus allowing three force-quiescent-state scans
for idle CPUs.  This scales with the number of CPUs, providing sensible
default values.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2018-08-30 16:03:43 -07:00
..
Kconfig rcu: Clean up flavor-related definitions and comments in Kconfig 2018-08-30 16:03:32 -07:00
Kconfig.debug rcu: Move RCU debug Kconfig options to kernel/rcu 2017-06-08 18:52:44 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rcu_segcblist.c rcu: Simplify and inline cpu_needs_another_gp() 2018-05-15 10:30:59 -07:00
rcu_segcblist.h rcu: Simplify and inline cpu_needs_another_gp() 2018-05-15 10:30:59 -07:00
rcu.h rcu: Provide functions for determining if call_rcu() has been invoked 2018-08-30 16:03:42 -07:00
rcuperf.c rcuperf: Remove the "rcu_bh" and "sched" torture types 2018-08-30 16:03:30 -07:00
rcutorture.c rcutorture: Dump reader protection sequence if failures or close calls 2018-08-30 16:03:40 -07:00
srcutiny.c sched/swait: Rename to exclusive 2018-06-20 11:35:56 +02:00
srcutree.c rcu: Clean up flavor-related definitions and comments in srcutree.h 2018-08-30 16:03:34 -07:00
sync.c doc: Fix various RCU docbook comment-header problems 2017-10-19 22:26:11 -04:00
tiny.c rcu: Motivate Tiny RCU forward progress 2018-08-30 16:03:41 -07:00
tree_exp.h rcu: Clean up flavor-related definitions and comments in tree_exp.h 2018-08-30 16:03:35 -07:00
tree_plugin.h rcu: Compute jiffies_till_sched_qs from other kernel parameters 2018-08-30 16:03:43 -07:00
tree.c rcu: Compute jiffies_till_sched_qs from other kernel parameters 2018-08-30 16:03:43 -07:00
tree.h rcu: Eliminate ->rcu_qs_ctr from the rcu_dynticks structure 2018-08-30 16:03:42 -07:00
update.c rcu: Clean up flavor-related definitions and comments in update.c 2018-08-30 16:03:36 -07:00