rcu: Make the rcu_nocb_poll boot parameter usable via boot config
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 5 Jul 2023 23:20:58 +0000 (16:20 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 16 Aug 2023 21:27:41 +0000 (14:27 -0700)
commit3292ba0229dbe5f3e79b78b230354ada2888dc29
treeebab7d167be57af14e7aa2f919ec4be6f97538b5
parent343640cb5b4ed349b3656ee4b100b36e2ae7e2da
rcu: Make the rcu_nocb_poll boot parameter usable via boot config

The rcu_nocb_poll kernel boot parameter is defined via early_param(),
whose parsing functions are invoked from parse_early_param() which
is in turn invoked by setup_arch(), which is very early indeed.  It
is invoked so early that the console output timestamps read 0.000000,
in other words, before time begins.

This use of early_param() means that the rcu_nocb_poll kernel boot
parameter cannot usefully be embedded into the kernel image.  Yes, you
can embed it, but setup_boot_config() is invoked from start_kernel()
too late for it to be parsed.

But it makes no sense to parse this parameter so early.  After all,
it cannot do anything until the rcuog kthreads are created, which is
long after rcu_init() time, let alone setup_boot_config() time.

This commit therefore switches the rcu_nocb_poll kernel boot parameter
from early_param() to __setup(), which allows boot-config parsing of
this parameter, in turn allowing it to be embedded into the kernel image.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
kernel/rcu/tree_nocb.h