[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3586af97-e9bc-341f-4a81-678b5e1e96f8@joelfernandes.org>
Date: Tue, 18 Jul 2023 09:46:24 -0400
From: Joel Fernandes <joel@...lfernandes.org>
To: "Paul E. McKenney" <paulmck@...nel.org>, rcu@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, kernel-team@...a.com,
rostedt@...dmis.org
Subject: Re: [PATCH rcu 5/6] rcu: Make the rcu_nocb_poll boot parameter usable
via boot config
On 7/17/23 14:03, Paul E. McKenney wrote:
> 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@...nel.org>
> ---
> kernel/rcu/tree_nocb.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h
> index 43229d2b0c44..5598212d1f27 100644
> --- a/kernel/rcu/tree_nocb.h
> +++ b/kernel/rcu/tree_nocb.h
> @@ -77,9 +77,9 @@ __setup("rcu_nocbs", rcu_nocb_setup);
> static int __init parse_rcu_nocb_poll(char *arg)
> {
> rcu_nocb_poll = true;
> - return 0;
> + return 1;
> }
> -early_param("rcu_nocb_poll", parse_rcu_nocb_poll);
> +__setup("rcu_nocb_poll", parse_rcu_nocb_poll);
I was trying to see if core_param() could be used. But I am not sure if the RCU
offload threads are spawned too early for that.
I am Ok with it:
Reviewed-by: Joel Fernandes (Google) <joel@...lfernandes.org>
thanks,
-Joel
> /*
> * Don't bother bypassing ->cblist if the call_rcu() rate is low.
Powered by blists - more mailing lists