rcu: Allow expedited grace periods to be disabled at init
Expedited grace periods can speed up boot, but are undesirable in aggressive real-time systems. This commit therefore introduces a kernel parameter rcupdate.rcu_normal_after_boot that disables expedited grace periods just before init is spawned. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
967dcb8fe6
commit
3e42ec1aa7
@ -3318,6 +3318,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||||||
grace-period latency. This parameter overrides
|
grace-period latency. This parameter overrides
|
||||||
rcupdate.rcu_expedited.
|
rcupdate.rcu_expedited.
|
||||||
|
|
||||||
|
rcupdate.rcu_normal_after_boot= [KNL]
|
||||||
|
Once boot has completed (that is, after
|
||||||
|
rcu_end_inkernel_boot() has been invoked), use
|
||||||
|
only normal grace-period primitives.
|
||||||
|
|
||||||
rcupdate.rcu_task_stall_timeout= [KNL]
|
rcupdate.rcu_task_stall_timeout= [KNL]
|
||||||
Set timeout in jiffies for RCU task stall warning
|
Set timeout in jiffies for RCU task stall warning
|
||||||
messages. Disable with a value less than or equal
|
messages. Disable with a value less than or equal
|
||||||
|
@ -63,6 +63,9 @@ MODULE_ALIAS("rcupdate");
|
|||||||
module_param(rcu_expedited, int, 0);
|
module_param(rcu_expedited, int, 0);
|
||||||
module_param(rcu_normal, int, 0);
|
module_param(rcu_normal, int, 0);
|
||||||
|
|
||||||
|
static int rcu_normal_after_boot;
|
||||||
|
module_param(rcu_normal_after_boot, int, 0);
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_LOCK_ALLOC) && defined(CONFIG_PREEMPT_COUNT)
|
#if defined(CONFIG_DEBUG_LOCK_ALLOC) && defined(CONFIG_PREEMPT_COUNT)
|
||||||
/**
|
/**
|
||||||
* rcu_read_lock_sched_held() - might we be in RCU-sched read-side critical section?
|
* rcu_read_lock_sched_held() - might we be in RCU-sched read-side critical section?
|
||||||
@ -178,6 +181,8 @@ void rcu_end_inkernel_boot(void)
|
|||||||
{
|
{
|
||||||
if (IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT))
|
if (IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT))
|
||||||
rcu_unexpedite_gp();
|
rcu_unexpedite_gp();
|
||||||
|
if (rcu_normal_after_boot)
|
||||||
|
WRITE_ONCE(rcu_normal, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PREEMPT_RCU
|
#ifdef CONFIG_PREEMPT_RCU
|
||||||
|
Loading…
Reference in New Issue
Block a user