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:
Родитель
967dcb8fe6
Коммит
3e42ec1aa7
|
@ -3318,6 +3318,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
grace-period latency. This parameter overrides
|
||||
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]
|
||||
Set timeout in jiffies for RCU task stall warning
|
||||
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_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)
|
||||
/**
|
||||
* 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))
|
||||
rcu_unexpedite_gp();
|
||||
if (rcu_normal_after_boot)
|
||||
WRITE_ONCE(rcu_normal, 1);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PREEMPT_RCU
|
||||
|
|
Загрузка…
Ссылка в новой задаче