From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: paulmck@kernel.org
Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
mhiramat@kernel.org, corbet@lwn.net, akpm@linux-foundation.org,
ndesaulniers@google.com, vbabka@suse.cz, hannes@cmpxchg.org,
joel@joelfernandes.org, quic_neeraju@quicinc.com,
urezki@gmail.com
Subject: Re: [PATCH RFC bootconfig] Allow forcing unconditional bootconfig processing
Date: Sun, 8 Jan 2023 00:22:15 +0900 [thread overview]
Message-ID: <20230108002215.c18df95b19acdd3207b379fa@kernel.org> (raw)
In-Reply-To: <20230105005838.GA1772817@paulmck-ThinkPad-P17-Gen-1>
On Wed, 4 Jan 2023 16:58:38 -0800
"Paul E. McKenney" <paulmck@kernel.org> wrote:
> The BOOT_CONFIG family of Kconfig options allows a bootconfig file
> containing kernel boot parameters to be embedded into an initrd or into
> the kernel itself. This can be extremely useful when deploying kernels
> in cases where some of the boot parameters depend on the kernel version
> rather than on the server hardware, firmware, or workload.
>
> Unfortunately, the "bootconfig" kernel parameter must be specified in
> order to cause the kernel to look for the embedded bootconfig file,
> and it clearly does not help to embed this "bootconfig" kernel parameter
> into that file.
>
> Therefore, provide a new BOOT_CONFIG_FORCE Kconfig option that causes the
> kernel to act as if the "bootconfig" kernel parameter had been specified.
> In other words, kernels built with CONFIG_BOOT_CONFIG_FORCE=y will look
> for the embedded bootconfig file even when the "bootconfig" kernel
> parameter is omitted. This permits kernel-version-dependent kernel
> boot parameters to be embedded into the kernel image without the need to
> (for example) update large numbers of boot loaders.
>
I like this because this is a simple solution. We have another option
to specify "bootconfig" in CONFIG_CMDLINE, but it can be overwritten by
bootloader. Thus, it is better to have this option so that user can
always enable bootconfig.
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this.
(or at least recommend to enable this)
Thank you!
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Nick Desaulniers <ndesaulniers@google.com>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Johannes Weiner <hannes@cmpxchg.org>
> Cc: <linux-doc@vger.kernel.org>
>
> diff --git a/Documentation/admin-guide/bootconfig.rst b/Documentation/admin-guide/bootconfig.rst
> index 9355c525fbe0a..91339efdcb541 100644
> --- a/Documentation/admin-guide/bootconfig.rst
> +++ b/Documentation/admin-guide/bootconfig.rst
> @@ -201,6 +201,8 @@ To remove the config from the image, you can use -d option as below::
>
> Then add "bootconfig" on the normal kernel command line to tell the
> kernel to look for the bootconfig at the end of the initrd file.
> +Alternatively, build your kernel with the ``CONFIG_BOOT_CONFIG_FORCE``
> +Kconfig option selected.
>
> Embedding a Boot Config into Kernel
> -----------------------------------
> @@ -217,7 +219,9 @@ path to the bootconfig file from source tree or object tree.
> The kernel will embed it as the default bootconfig.
>
> Just as when attaching the bootconfig to the initrd, you need ``bootconfig``
> -option on the kernel command line to enable the embedded bootconfig.
> +option on the kernel command line to enable the embedded bootconfig, or,
> +alternatively, build your kernel with the ``CONFIG_BOOT_CONFIG_FORCE``
> +Kconfig option selected.
>
> Note that even if you set this option, you can override the embedded
> bootconfig by another bootconfig which attached to the initrd.
> diff --git a/init/Kconfig b/init/Kconfig
> index 7e5c3ddc341de..f894fb004bad4 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -1376,6 +1376,18 @@ config BOOT_CONFIG
>
> If unsure, say Y.
>
> +config BOOT_CONFIG_FORCE
> + bool "Force unconditional bootconfig processing"
> + depends on BOOT_CONFIG
> + help
> + With this Kconfig option set, BOOT_CONFIG processing is carried
> + out even when the "bootconfig" kernel-boot parameter is omitted.
> + In fact, with this Kconfig option set, there is no way to
> + make the kernel ignore the BOOT_CONFIG-supplied kernel-boot
> + parameters.
> +
> + If unsure, say N.
> +
> config BOOT_CONFIG_EMBED
> bool "Embed bootconfig file in the kernel"
> depends on BOOT_CONFIG
> diff --git a/init/main.c b/init/main.c
> index e1c3911d7c707..669cb892e6c17 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -156,7 +156,7 @@ static char *extra_init_args;
>
> #ifdef CONFIG_BOOT_CONFIG
> /* Is bootconfig on command line? */
> -static bool bootconfig_found;
> +static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE);
> static size_t initargs_offs;
> #else
> # define bootconfig_found false
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
next prev parent reply other threads:[~2023-01-07 15:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-05 0:58 [PATCH RFC bootconfig] Allow forcing unconditional bootconfig processing Paul E. McKenney
2023-01-07 15:22 ` Masami Hiramatsu [this message]
2023-01-07 16:22 ` Paul E. McKenney
2023-01-08 6:04 ` Masami Hiramatsu
2023-01-09 4:25 ` Paul E. McKenney
2023-01-09 23:56 ` Masami Hiramatsu
2023-01-10 0:07 ` Paul E. McKenney
2023-01-10 0:54 ` Masami Hiramatsu
2023-01-10 1:09 ` Paul E. McKenney
2023-01-10 14:17 ` Masami Hiramatsu
2023-01-10 15:02 ` Paul E. McKenney
2023-01-26 19:26 ` Paul E. McKenney
2023-01-27 5:57 ` Masami Hiramatsu
2023-01-31 18:50 ` Paul E. McKenney
2023-02-24 8:31 ` Geert Uytterhoeven
2023-02-24 16:13 ` Masami Hiramatsu
2023-02-24 16:33 ` Paul E. McKenney
2023-02-25 0:58 ` Masami Hiramatsu
2023-02-25 1:19 ` Paul E. McKenney
2023-02-26 23:16 ` Masami Hiramatsu
2023-02-27 16:56 ` Paul E. McKenney
2023-02-27 23:29 ` Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230108002215.c18df95b19acdd3207b379fa@kernel.org \
--to=mhiramat@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=hannes@cmpxchg.org \
--cc=joel@joelfernandes.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ndesaulniers@google.com \
--cc=paulmck@kernel.org \
--cc=quic_neeraju@quicinc.com \
--cc=urezki@gmail.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.