Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b6c53fa authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Kyle Yan
Browse files

rcu: update: Make RCU_EXPEDITE_BOOT be the default



RCU_EXPEDITE_BOOT should speed up the boot process by enforcing
synchronize_rcu_expedited() instead of synchronize_rcu() during the boot
process. There should be no reason why one does not want this and there
is no need worry about real time latency at this point.
Therefore make it default.

Note that users wishing to avoid expediting entirely, for example when
bringing up new hardware possibly having flaky IPIs, can use the
rcu_normal boot parameter to override boot-time expediting.

Change-Id: I758bb7819bb2b18ad7232c3e943b9c1cb85d49e9
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
[ paulmck: Reworded commit log. ]
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent 0e6032e3
Loading
Loading
Loading
Loading
+0 −13
Original line number Original line Diff line number Diff line
@@ -795,19 +795,6 @@ config RCU_NOCB_CPU_ALL


endchoice
endchoice


config RCU_EXPEDITE_BOOT
	bool
	default n
	help
	  This option enables expedited grace periods at boot time,
	  as if rcu_expedite_gp() had been invoked early in boot.
	  The corresponding rcu_unexpedite_gp() is invoked from
	  rcu_end_inkernel_boot(), which is intended to be invoked
	  at the end of the kernel-only boot sequence, just before
	  init is exec'ed.

	  Accept the default if unsure.

endmenu # "RCU Subsystem"
endmenu # "RCU Subsystem"


config BUILD_BIN2C
config BUILD_BIN2C
+2 −4
Original line number Original line Diff line number Diff line
@@ -132,8 +132,7 @@ bool rcu_gp_is_normal(void)
}
}
EXPORT_SYMBOL_GPL(rcu_gp_is_normal);
EXPORT_SYMBOL_GPL(rcu_gp_is_normal);


static atomic_t rcu_expedited_nesting =
static atomic_t rcu_expedited_nesting = ATOMIC_INIT(1);
	ATOMIC_INIT(IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT) ? 1 : 0);


/*
/*
 * Should normal grace-period primitives be expedited?  Intended for
 * Should normal grace-period primitives be expedited?  Intended for
@@ -182,7 +181,6 @@ EXPORT_SYMBOL_GPL(rcu_unexpedite_gp);
 */
 */
void rcu_end_inkernel_boot(void)
void rcu_end_inkernel_boot(void)
{
{
	if (IS_ENABLED(CONFIG_RCU_EXPEDITE_BOOT))
	rcu_unexpedite_gp();
	rcu_unexpedite_gp();
	if (rcu_normal_after_boot)
	if (rcu_normal_after_boot)
		WRITE_ONCE(rcu_normal, 1);
		WRITE_ONCE(rcu_normal, 1);