Message ID | 20230105005838.GA1772817@paulmck-ThinkPad-P17-Gen-1 |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp54976wrt; Wed, 4 Jan 2023 17:07:32 -0800 (PST) X-Google-Smtp-Source: AMrXdXtkPwS/QFoUsIXGE0FgdQwyuSU/Ien1RSkQ7hkAj3368Fq3UltCHMsNatzQ5czJu9kdogK8 X-Received: by 2002:a17:90a:5891:b0:226:620b:6ae5 with SMTP id j17-20020a17090a589100b00226620b6ae5mr15696740pji.22.1672880851961; Wed, 04 Jan 2023 17:07:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672880851; cv=none; d=google.com; s=arc-20160816; b=NyJa5vv4jAws/w4jVwNh5kX7GcOdK9ysePeMzn5bS8WzR2Ji93JFan5gJ/uGnH+Bjw cs+N4QzOVjoeScloKyLNsTB/f18wTIyzzosBetxhaa/2tb/xy4J4t6EYVa245M3EkKgc fTcO8mHkCCTkN0xBKq5h7zHzFIslKA0Q57cWtNhg+T+juvReobKRXPgt/xYirLZn3050 IJO/S4sc3GodfNtbexRfEcELrWi4iCyMOMM//EENWUypqVmcTtoaBnlMW0kXwe7+Am4r rD2iD+3jwUTgUQR2bJ52L3VRSKKL7HZ3LN2HJGbHZM4bO8ZrxLmwSUFj1Yg/fH7RFwWd XlYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:reply-to :message-id:subject:cc:to:from:date:dkim-signature; bh=Q7/gV/qPRe37RduWjyWBAJ2iFRVdlqhiK237yEGeaww=; b=Ia9GcAnUENWydI9g4fN0aMDAKhI3Ovb4UhnHKV5Fp7zT+pekPgVMgehGuK5/iVM37F arHhkEupPS0YS7cJA2kIeaq3XDql5NIiM7THzu95YbEZA0tfRw7B4SwiMUHhemrEdYCy SIKRuWFQfQdE8j0iGCrMymknRpffUTHD8t7QOu1OUAFTtFOx6swZnlTwmHTLu8/aqaxf yHxL709xoZ6BBu1z6oENsWCG/hpYe7LV4C6cPppOFHRTIHIIkalZFxDudrLDLs7JlwYb 0iXDnqZE6uYIxo+9CcbVZK64jvHXzIViSoPnr5Cw9pVwXh8GoARjTiXhOgH5OKyEL00+ ktfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ND3hK1V4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x19-20020a17090a8a9300b002190932890asi461207pjn.57.2023.01.04.17.07.19; Wed, 04 Jan 2023 17:07:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ND3hK1V4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229572AbjAEBAL (ORCPT <rfc822;tmhikaru@gmail.com> + 99 others); Wed, 4 Jan 2023 20:00:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229787AbjAEA7r (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 4 Jan 2023 19:59:47 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8CA4947309; Wed, 4 Jan 2023 16:58:41 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 29907B81716; Thu, 5 Jan 2023 00:58:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9903C433EF; Thu, 5 Jan 2023 00:58:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1672880318; bh=G20leUtEUw9tobzMM7YamKZ/d8zVXVzh16H30wqZ98k=; h=Date:From:To:Cc:Subject:Reply-To:From; b=ND3hK1V4ql4Hb6KaQuLMW94lOLEWEXsHlCZvgf4lIvnoSRlyKW6KVpv9Z7ZdDfpC/ ocUiahp2qwV0v3C9vvlpc/ZMyeLrgl+SzWdiDU+4ejZxq63ycZPgUl8/HugV7xCEVX qdIZolBwiISP12lUQEvt69lChuUpGXG7h2bLOX+tBkEbjhbNWfLFUaSSRvVrJRLXbF DDQfN9HutqRFUBzdgDo0Ukl2p9xRbsJGHVLvhx1fQC/aRxhXrcBsUpYBtzKcwdgQOV HPT4NNTiVWbEIrBpVJBifazckfmXY5ETi4VVMPdandtdDOjINALhDz8a7Tarqwg6mz eV/smDZr+Akiw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 75A7C5C05CA; Wed, 4 Jan 2023 16:58:38 -0800 (PST) Date: Wed, 4 Jan 2023 16:58:38 -0800 From: "Paul E. McKenney" <paulmck@kernel.org> To: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: 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: [PATCH RFC bootconfig] Allow forcing unconditional bootconfig processing Message-ID: <20230105005838.GA1772817@paulmck-ThinkPad-P17-Gen-1> Reply-To: paulmck@kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754142712159391096?= X-GMAIL-MSGID: =?utf-8?q?1754142712159391096?= |
Series |
[RFC,bootconfig] Allow forcing unconditional bootconfig processing
|
|
Commit Message
Paul E. McKenney
Jan. 5, 2023, 12:58 a.m. UTC
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.
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>
Comments
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
On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > 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. Glad you like it! In addition, if the help text is accurate, another shortcoming of CONFIG_CMDLINE is that its semantics vary from one architecture to another. Some have CONFIG_CMDLINE override the boot-loader supplied parameters, and others differ in the order in which the parameters are processed. > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thank you! > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > (or at least recommend to enable this) Like this? Thanx, Paul ------------------------------------------------------------------------ commit d09a1505c51a70da38b34ac38062977299aef742 Author: Paul E. McKenney <paulmck@kernel.org> Date: Sat Jan 7 08:09:22 2023 -0800 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention will normally be to unconditionally provide the specified kernel-boot arguments to the kernel, as opposed to requiring a separately provided bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. The old semantics may be obtained by manually overriding this default. Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> diff --git a/init/Kconfig b/init/Kconfig index 0fb19fa0edba9..97a0f14d9020d 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1379,6 +1379,7 @@ config BOOT_CONFIG config BOOT_CONFIG_FORCE bool "Force unconditional bootconfig processing" depends on BOOT_CONFIG + default y if BOOT_CONFIG_EMBED help With this Kconfig option set, BOOT_CONFIG processing is carried out even when the "bootconfig" kernel-boot parameter is omitted.
On Sat, 7 Jan 2023 08:22:02 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > 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. > > Glad you like it! > > In addition, if the help text is accurate, another shortcoming of > CONFIG_CMDLINE is that its semantics vary from one architecture to > another. Some have CONFIG_CMDLINE override the boot-loader supplied > parameters, and others differ in the order in which the parameters > are processed. Yes, that differences confuse us... > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > Thank you! > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > (or at least recommend to enable this) > > Like this? Yes! Thanks. > > Thanx, Paul > > ------------------------------------------------------------------------ > > commit d09a1505c51a70da38b34ac38062977299aef742 > Author: Paul E. McKenney <paulmck@kernel.org> > Date: Sat Jan 7 08:09:22 2023 -0800 > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > will normally be to unconditionally provide the specified kernel-boot > arguments to the kernel, as opposed to requiring a separately provided > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > The old semantics may be obtained by manually overriding this default. > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thank you! > > diff --git a/init/Kconfig b/init/Kconfig > index 0fb19fa0edba9..97a0f14d9020d 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > config BOOT_CONFIG_FORCE > bool "Force unconditional bootconfig processing" > depends on BOOT_CONFIG > + default y if BOOT_CONFIG_EMBED > help > With this Kconfig option set, BOOT_CONFIG processing is carried > out even when the "bootconfig" kernel-boot parameter is omitted.
On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > On Sat, 7 Jan 2023 08:22:02 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > 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. > > > > Glad you like it! > > > > In addition, if the help text is accurate, another shortcoming of > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > parameters, and others differ in the order in which the parameters > > are processed. > > Yes, that differences confuse us... I am glad that it is not just me. ;-) I will add words to that effect to the commit log. > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > Thank you! > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > (or at least recommend to enable this) > > > > Like this? > > Yes! Thanks. > > > > > Thanx, Paul > > > > ------------------------------------------------------------------------ > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > Author: Paul E. McKenney <paulmck@kernel.org> > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > will normally be to unconditionally provide the specified kernel-boot > > arguments to the kernel, as opposed to requiring a separately provided > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > The old semantics may be obtained by manually overriding this default. > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Applied, thank you! Thanx, Paul > Thank you! > > > > > diff --git a/init/Kconfig b/init/Kconfig > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > --- a/init/Kconfig > > +++ b/init/Kconfig > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > config BOOT_CONFIG_FORCE > > bool "Force unconditional bootconfig processing" > > depends on BOOT_CONFIG > > + default y if BOOT_CONFIG_EMBED > > help > > With this Kconfig option set, BOOT_CONFIG processing is carried > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Sun, 8 Jan 2023 20:25:01 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > On Sat, 7 Jan 2023 08:22:02 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > 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. > > > > > > Glad you like it! > > > > > > In addition, if the help text is accurate, another shortcoming of > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > parameters, and others differ in the order in which the parameters > > > are processed. > > > > Yes, that differences confuse us... > > I am glad that it is not just me. ;-) > > I will add words to that effect to the commit log. > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > Thank you! > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > (or at least recommend to enable this) > > > > > > Like this? > > > > Yes! Thanks. > > > > > > > > Thanx, Paul > > > > > > ------------------------------------------------------------------------ > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > will normally be to unconditionally provide the specified kernel-boot > > > arguments to the kernel, as opposed to requiring a separately provided > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > Applied, thank you! > > Thanx, Paul Paul, just for confirmation, have you picked these patches on your tree? Thank you, > > > Thank you! > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > --- a/init/Kconfig > > > +++ b/init/Kconfig > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > config BOOT_CONFIG_FORCE > > > bool "Force unconditional bootconfig processing" > > > depends on BOOT_CONFIG > > > + default y if BOOT_CONFIG_EMBED > > > help > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > On Sun, 8 Jan 2023 20:25:01 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > 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. > > > > > > > > Glad you like it! > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > parameters, and others differ in the order in which the parameters > > > > are processed. > > > > > > Yes, that differences confuse us... > > > > I am glad that it is not just me. ;-) > > > > I will add words to that effect to the commit log. > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > Thank you! > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > (or at least recommend to enable this) > > > > > > > > Like this? > > > > > > Yes! Thanks. > > > > > > > > > > > Thanx, Paul > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > will normally be to unconditionally provide the specified kernel-boot > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > Applied, thank you! > > Paul, just for confirmation, have you picked these patches on your tree? I have, but if you would prefer to take them, just let me know when you have pulled them in. It is easy for me to drop them. Here they are in the -rcu tree: 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git Thanx, Paul > Thank you, > > > > > > Thank you! > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > --- a/init/Kconfig > > > > +++ b/init/Kconfig > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > config BOOT_CONFIG_FORCE > > > > bool "Force unconditional bootconfig processing" > > > > depends on BOOT_CONFIG > > > > + default y if BOOT_CONFIG_EMBED > > > > help > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > -- > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Mon, 9 Jan 2023 16:07:32 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > On Sun, 8 Jan 2023 20:25:01 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > 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. > > > > > > > > > > Glad you like it! > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > parameters, and others differ in the order in which the parameters > > > > > are processed. > > > > > > > > Yes, that differences confuse us... > > > > > > I am glad that it is not just me. ;-) > > > > > > I will add words to that effect to the commit log. > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > Thank you! > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > (or at least recommend to enable this) > > > > > > > > > > Like this? > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > Applied, thank you! > > > > Paul, just for confirmation, have you picked these patches on your tree? > > I have, but if you would prefer to take them, just let me know when you > have pulled them in. It is easy for me to drop them. > > Here they are in the -rcu tree: > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git Yeah, if it's not hurry, let me pick those to linux-trace tree (bootconfig/for-next). I would like to consolidate the bootconfig updates on my tree. Thanks, > > Thanx, Paul > > > Thank you, > > > > > > > > > Thank you! > > > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > --- a/init/Kconfig > > > > > +++ b/init/Kconfig > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > config BOOT_CONFIG_FORCE > > > > > bool "Force unconditional bootconfig processing" > > > > > depends on BOOT_CONFIG > > > > > + default y if BOOT_CONFIG_EMBED > > > > > help > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > > > -- > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > On Mon, 9 Jan 2023 16:07:32 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > 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. > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > parameters, and others differ in the order in which the parameters > > > > > > are processed. > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > Like this? > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > Applied, thank you! > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > I have, but if you would prefer to take them, just let me know when you > > have pulled them in. It is easy for me to drop them. > > > > Here they are in the -rcu tree: > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > Yeah, if it's not hurry, let me pick those to linux-trace tree > (bootconfig/for-next). I would like to consolidate the bootconfig > updates on my tree. Please go ahead and grab them. Just out of curiosity, are they in time for the upcoming v6.3 merge window? Thanx, Paul > Thanks, > > > > > Thanx, Paul > > > > > Thank you, > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > > --- a/init/Kconfig > > > > > > +++ b/init/Kconfig > > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > > config BOOT_CONFIG_FORCE > > > > > > bool "Force unconditional bootconfig processing" > > > > > > depends on BOOT_CONFIG > > > > > > + default y if BOOT_CONFIG_EMBED > > > > > > help > > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > > > > > > -- > > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > -- > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Mon, 9 Jan 2023 17:09:53 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > > On Mon, 9 Jan 2023 16:07:32 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > 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. > > > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > > parameters, and others differ in the order in which the parameters > > > > > > > are processed. > > > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > Applied, thank you! > > > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > > > I have, but if you would prefer to take them, just let me know when you > > > have pulled them in. It is easy for me to drop them. > > > > > > Here they are in the -rcu tree: > > > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > Yeah, if it's not hurry, let me pick those to linux-trace tree > > (bootconfig/for-next). I would like to consolidate the bootconfig > > updates on my tree. > > Please go ahead and grab them. Just out of curiosity, are they in time > for the upcoming v6.3 merge window? Yes, I will do. Thank you! > > Thanx, Paul > > > Thanks, > > > > > > > > Thanx, Paul > > > > > > > Thank you, > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > > > --- a/init/Kconfig > > > > > > > +++ b/init/Kconfig > > > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > > > config BOOT_CONFIG_FORCE > > > > > > > bool "Force unconditional bootconfig processing" > > > > > > > depends on BOOT_CONFIG > > > > > > > + default y if BOOT_CONFIG_EMBED > > > > > > > help > > > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > > > > > > > > > -- > > > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > -- > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Tue, Jan 10, 2023 at 11:17:21PM +0900, Masami Hiramatsu wrote: > On Mon, 9 Jan 2023 17:09:53 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > > > On Mon, 9 Jan 2023 16:07:32 -0800 > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > > 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. > > > > > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > > > parameters, and others differ in the order in which the parameters > > > > > > > > are processed. > > > > > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > Applied, thank you! > > > > > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > > > > > I have, but if you would prefer to take them, just let me know when you > > > > have pulled them in. It is easy for me to drop them. > > > > > > > > Here they are in the -rcu tree: > > > > > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > > > Yeah, if it's not hurry, let me pick those to linux-trace tree > > > (bootconfig/for-next). I would like to consolidate the bootconfig > > > updates on my tree. > > > > Please go ahead and grab them. Just out of curiosity, are they in time > > for the upcoming v6.3 merge window? > > Yes, I will do. Very good, I will drop them from my tree on my next rebase. Thanx, Paul
On Tue, Jan 10, 2023 at 07:02:59AM -0800, Paul E. McKenney wrote: > On Tue, Jan 10, 2023 at 11:17:21PM +0900, Masami Hiramatsu wrote: > > On Mon, 9 Jan 2023 17:09:53 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > > > > On Mon, 9 Jan 2023 16:07:32 -0800 > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > > > 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. > > > > > > > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > > > > parameters, and others differ in the order in which the parameters > > > > > > > > > are processed. > > > > > > > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > Applied, thank you! > > > > > > > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > > > > > > > I have, but if you would prefer to take them, just let me know when you > > > > > have pulled them in. It is easy for me to drop them. > > > > > > > > > > Here they are in the -rcu tree: > > > > > > > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > > > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > > > > > Yeah, if it's not hurry, let me pick those to linux-trace tree > > > > (bootconfig/for-next). I would like to consolidate the bootconfig > > > > updates on my tree. > > > > > > Please go ahead and grab them. Just out of curiosity, are they in time > > > for the upcoming v6.3 merge window? > > > > Yes, I will do. > > Very good, I will drop them from my tree on my next rebase. Apologies for nagging, but I don't see this in -next, so I figured that I should follow up. Is there some adjustment required to this patch? If so, please let me know so that I can fix it. Thanx, Paul
On Thu, 26 Jan 2023 11:26:14 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Tue, Jan 10, 2023 at 07:02:59AM -0800, Paul E. McKenney wrote: > > On Tue, Jan 10, 2023 at 11:17:21PM +0900, Masami Hiramatsu wrote: > > > On Mon, 9 Jan 2023 17:09:53 -0800 > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > > > > > On Mon, 9 Jan 2023 16:07:32 -0800 > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > > > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > > > > 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. > > > > > > > > > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > > > > > parameters, and others differ in the order in which the parameters > > > > > > > > > > are processed. > > > > > > > > > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > Applied, thank you! > > > > > > > > > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > > > > > > > > > I have, but if you would prefer to take them, just let me know when you > > > > > > have pulled them in. It is easy for me to drop them. > > > > > > > > > > > > Here they are in the -rcu tree: > > > > > > > > > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > > > > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > > > > > > > Yeah, if it's not hurry, let me pick those to linux-trace tree > > > > > (bootconfig/for-next). I would like to consolidate the bootconfig > > > > > updates on my tree. > > > > > > > > Please go ahead and grab them. Just out of curiosity, are they in time > > > > for the upcoming v6.3 merge window? > > > > > > Yes, I will do. > > > > Very good, I will drop them from my tree on my next rebase. > > Apologies for nagging, but I don't see this in -next, so I figured that > I should follow up. Is there some adjustment required to this patch? > If so, please let me know so that I can fix it. Thanks for following up! Sorry, it was my mistake to forget it to -next. Let me fix that. > > Thanx, Paul
On Fri, Jan 27, 2023 at 02:57:31PM +0900, Masami Hiramatsu wrote: > On Thu, 26 Jan 2023 11:26:14 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Tue, Jan 10, 2023 at 07:02:59AM -0800, Paul E. McKenney wrote: > > > On Tue, Jan 10, 2023 at 11:17:21PM +0900, Masami Hiramatsu wrote: > > > > On Mon, 9 Jan 2023 17:09:53 -0800 > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > On Tue, Jan 10, 2023 at 09:54:50AM +0900, Masami Hiramatsu wrote: > > > > > > On Mon, 9 Jan 2023 16:07:32 -0800 > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > On Tue, Jan 10, 2023 at 08:56:36AM +0900, Masami Hiramatsu wrote: > > > > > > > > On Sun, 8 Jan 2023 20:25:01 -0800 > > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 03:04:25PM +0900, Masami Hiramatsu wrote: > > > > > > > > > > On Sat, 7 Jan 2023 08:22:02 -0800 > > > > > > > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > > > > > > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > > > > > 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. > > > > > > > > > > > > > > > > > > > > > > Glad you like it! > > > > > > > > > > > > > > > > > > > > > > In addition, if the help text is accurate, another shortcoming of > > > > > > > > > > > CONFIG_CMDLINE is that its semantics vary from one architecture to > > > > > > > > > > > another. Some have CONFIG_CMDLINE override the boot-loader supplied > > > > > > > > > > > parameters, and others differ in the order in which the parameters > > > > > > > > > > > are processed. > > > > > > > > > > > > > > > > > > > > Yes, that differences confuse us... > > > > > > > > > > > > > > > > > > I am glad that it is not just me. ;-) > > > > > > > > > > > > > > > > > > I will add words to that effect to the commit log. > > > > > > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > > > > > > > Yes! Thanks. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > > > > > > > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > > > > > > > Applied, thank you! > > > > > > > > > > > > > > > > Paul, just for confirmation, have you picked these patches on your tree? > > > > > > > > > > > > > > I have, but if you would prefer to take them, just let me know when you > > > > > > > have pulled them in. It is easy for me to drop them. > > > > > > > > > > > > > > Here they are in the -rcu tree: > > > > > > > > > > > > > > 3d9ccc4a8b56e bootconfig: Allow forcing unconditional bootconfig processing > > > > > > > 68b920592ff67 bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > > > > > > > > > > > > Yeah, if it's not hurry, let me pick those to linux-trace tree > > > > > > (bootconfig/for-next). I would like to consolidate the bootconfig > > > > > > updates on my tree. > > > > > > > > > > Please go ahead and grab them. Just out of curiosity, are they in time > > > > > for the upcoming v6.3 merge window? > > > > > > > > Yes, I will do. > > > > > > Very good, I will drop them from my tree on my next rebase. > > > > Apologies for nagging, but I don't see this in -next, so I figured that > > I should follow up. Is there some adjustment required to this patch? > > If so, please let me know so that I can fix it. > > Thanks for following up! > Sorry, it was my mistake to forget it to -next. Let me fix that. And I see it now, thank you! Thanx, Paul
Hi Paul, On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > (or at least recommend to enable this) > > Like this? > > Thanx, Paul > > ------------------------------------------------------------------------ > > commit d09a1505c51a70da38b34ac38062977299aef742 > Author: Paul E. McKenney <paulmck@kernel.org> > Date: Sat Jan 7 08:09:22 2023 -0800 > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > will normally be to unconditionally provide the specified kernel-boot > arguments to the kernel, as opposed to requiring a separately provided > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > The old semantics may be obtained by manually overriding this default. > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > diff --git a/init/Kconfig b/init/Kconfig > index 0fb19fa0edba9..97a0f14d9020d 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > config BOOT_CONFIG_FORCE > bool "Force unconditional bootconfig processing" > depends on BOOT_CONFIG > + default y if BOOT_CONFIG_EMBED > help > With this Kconfig option set, BOOT_CONFIG processing is carried > out even when the "bootconfig" kernel-boot parameter is omitted. Thanks for your patch, which is now commit 6ded8a28ed80e4cc ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). After this change, an all{mod,yes}config kernel has: CONFIG_BOOT_CONFIG_FORCE=y CONFIG_BOOT_CONFIG_EMBED=y CONFIG_BOOT_CONFIG_EMBED_FILE="" Will this actually work? I haven't tried booting such a kernel yet. Gr{oetje,eeting}s, Geert
Hi Geert, On Fri, 24 Feb 2023 09:31:50 +0100 Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Hi Paul, > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > (or at least recommend to enable this) > > > > Like this? > > > > Thanx, Paul > > > > ------------------------------------------------------------------------ > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > Author: Paul E. McKenney <paulmck@kernel.org> > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > will normally be to unconditionally provide the specified kernel-boot > > arguments to the kernel, as opposed to requiring a separately provided > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > The old semantics may be obtained by manually overriding this default. > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > diff --git a/init/Kconfig b/init/Kconfig > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > --- a/init/Kconfig > > +++ b/init/Kconfig > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > config BOOT_CONFIG_FORCE > > bool "Force unconditional bootconfig processing" > > depends on BOOT_CONFIG > > + default y if BOOT_CONFIG_EMBED > > help > > With this Kconfig option set, BOOT_CONFIG processing is carried > > out even when the "bootconfig" kernel-boot parameter is omitted. > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > After this change, an all{mod,yes}config kernel has: > > CONFIG_BOOT_CONFIG_FORCE=y > CONFIG_BOOT_CONFIG_EMBED=y > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > Will this actually work? I haven't tried booting such a kernel yet. Yeah, good question. It is same as when you boot the kernel with 'bootconfig' but do not add the bootconfig file to initrd. You may see below message on boot log, but kernel boots normally. :) 'bootconfig' found on command line, but no bootconfig found (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this will be shown without 'bootconfig' on command line.) Thank you! > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > Hi Geert, > > On Fri, 24 Feb 2023 09:31:50 +0100 > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > Hi Paul, > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > (or at least recommend to enable this) > > > > > > Like this? > > > > > > Thanx, Paul > > > > > > ------------------------------------------------------------------------ > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > will normally be to unconditionally provide the specified kernel-boot > > > arguments to the kernel, as opposed to requiring a separately provided > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > --- a/init/Kconfig > > > +++ b/init/Kconfig > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > config BOOT_CONFIG_FORCE > > > bool "Force unconditional bootconfig processing" > > > depends on BOOT_CONFIG > > > + default y if BOOT_CONFIG_EMBED > > > help > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > After this change, an all{mod,yes}config kernel has: > > > > CONFIG_BOOT_CONFIG_FORCE=y > > CONFIG_BOOT_CONFIG_EMBED=y > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > Will this actually work? I haven't tried booting such a kernel yet. > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > but do not add the bootconfig file to initrd. You may see below message > on boot log, but kernel boots normally. :) > > 'bootconfig' found on command line, but no bootconfig found > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > will be shown without 'bootconfig' on command line.) I just tried it again, and for me it just silently ignores the bootconfig setup. Which is what I recall happening when I tried it when creating the patch. Here is the .config file pieces of interest: CONFIG_BOOT_CONFIG=y CONFIG_BOOT_CONFIG_FORCE=y CONFIG_BOOT_CONFIG_EMBED=y CONFIG_BOOT_CONFIG_EMBED_FILE="" Anyone else seeing something different? Thanx, Paul > Thank you! > > > > > Gr{oetje,eeting}s, > > > > Geert > > > > -- > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > In personal conversations with technical people, I call myself a hacker. But > > when I'm talking to journalists I just say "programmer" or something like that. > > -- Linus Torvalds > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Fri, 24 Feb 2023 08:33:07 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > > Hi Geert, > > > > On Fri, 24 Feb 2023 09:31:50 +0100 > > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > > > Hi Paul, > > > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > (or at least recommend to enable this) > > > > > > > > Like this? > > > > > > > > Thanx, Paul > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > will normally be to unconditionally provide the specified kernel-boot > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > --- a/init/Kconfig > > > > +++ b/init/Kconfig > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > config BOOT_CONFIG_FORCE > > > > bool "Force unconditional bootconfig processing" > > > > depends on BOOT_CONFIG > > > > + default y if BOOT_CONFIG_EMBED > > > > help > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > > > After this change, an all{mod,yes}config kernel has: > > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > CONFIG_BOOT_CONFIG_EMBED=y > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > Will this actually work? I haven't tried booting such a kernel yet. > > > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > > but do not add the bootconfig file to initrd. You may see below message > > on boot log, but kernel boots normally. :) > > > > 'bootconfig' found on command line, but no bootconfig found > > > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > > will be shown without 'bootconfig' on command line.) > > I just tried it again, and for me it just silently ignores the bootconfig > setup. Which is what I recall happening when I tried it when creating > the patch. > > Here is the .config file pieces of interest: > > CONFIG_BOOT_CONFIG=y > CONFIG_BOOT_CONFIG_FORCE=y > CONFIG_BOOT_CONFIG_EMBED=y > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > Anyone else seeing something different? Hmm, from the code, I think you'll see that message in early console log. In init/main.c: ---- #ifdef CONFIG_BOOT_CONFIG /* Is bootconfig on command line? */ static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE); static size_t initargs_offs; #else ---- And ---- static void __init setup_boot_config(void) { ... strscpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); err = parse_args("bootconfig", tmp_cmdline, NULL, 0, 0, 0, NULL, bootconfig_params); if (IS_ERR(err) || !bootconfig_found) return; /* parse_args() stops at the next param of '--' and returns an address */ if (err) initargs_offs = err - tmp_cmdline; if (!data) { pr_err("'bootconfig' found on command line, but no bootconfig found\n"); return; } ---- Thus, if CONFIG_BOOT_CONFIG_FORCE=y, the process passes the below check if (IS_ERR(err) || !bootconfig_found) return; But since we have an empty 'data', the error should be printed. Thank you, > > Thanx, Paul > > > Thank you! > > > > > > > > Gr{oetje,eeting}s, > > > > > > Geert > > > > > > -- > > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > > > In personal conversations with technical people, I call myself a hacker. But > > > when I'm talking to journalists I just say "programmer" or something like that. > > > -- Linus Torvalds > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Sat, Feb 25, 2023 at 09:58:11AM +0900, Masami Hiramatsu wrote: > On Fri, 24 Feb 2023 08:33:07 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > > > Hi Geert, > > > > > > On Fri, 24 Feb 2023 09:31:50 +0100 > > > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > > > > > Hi Paul, > > > > > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > (or at least recommend to enable this) > > > > > > > > > > Like this? > > > > > > > > > > Thanx, Paul > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > --- a/init/Kconfig > > > > > +++ b/init/Kconfig > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > config BOOT_CONFIG_FORCE > > > > > bool "Force unconditional bootconfig processing" > > > > > depends on BOOT_CONFIG > > > > > + default y if BOOT_CONFIG_EMBED > > > > > help > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > > > > > After this change, an all{mod,yes}config kernel has: > > > > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > Will this actually work? I haven't tried booting such a kernel yet. > > > > > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > > > but do not add the bootconfig file to initrd. You may see below message > > > on boot log, but kernel boots normally. :) > > > > > > 'bootconfig' found on command line, but no bootconfig found > > > > > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > > > will be shown without 'bootconfig' on command line.) > > > > I just tried it again, and for me it just silently ignores the bootconfig > > setup. Which is what I recall happening when I tried it when creating > > the patch. > > > > Here is the .config file pieces of interest: > > > > CONFIG_BOOT_CONFIG=y > > CONFIG_BOOT_CONFIG_FORCE=y > > CONFIG_BOOT_CONFIG_EMBED=y > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > Anyone else seeing something different? > > Hmm, from the code, I think you'll see that message in early console log. > > In init/main.c: > > ---- > #ifdef CONFIG_BOOT_CONFIG > /* Is bootconfig on command line? */ > static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE); > static size_t initargs_offs; > #else > ---- > And > ---- > static void __init setup_boot_config(void) > { > ... > strscpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); > err = parse_args("bootconfig", tmp_cmdline, NULL, 0, 0, 0, NULL, > bootconfig_params); > > if (IS_ERR(err) || !bootconfig_found) > return; > > /* parse_args() stops at the next param of '--' and returns an address */ > if (err) > initargs_offs = err - tmp_cmdline; > > if (!data) { > pr_err("'bootconfig' found on command line, but no bootconfig found\n"); > return; > } > ---- > > Thus, if CONFIG_BOOT_CONFIG_FORCE=y, the process passes the below check > > if (IS_ERR(err) || !bootconfig_found) > return; > > But since we have an empty 'data', the error should be printed. And you are quite right, the runs without data files did get me this: 'bootconfig' found on command line, but no bootconfig found Please accept my apologies for my confusion. Thanx, Paul > Thank you, > > > > > Thanx, Paul > > > > > Thank you! > > > > > > > > > > > Gr{oetje,eeting}s, > > > > > > > > Geert > > > > > > > > -- > > > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > > > > > In personal conversations with technical people, I call myself a hacker. But > > > > when I'm talking to journalists I just say "programmer" or something like that. > > > > -- Linus Torvalds > > > > > > > > > -- > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Fri, 24 Feb 2023 17:19:10 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Sat, Feb 25, 2023 at 09:58:11AM +0900, Masami Hiramatsu wrote: > > On Fri, 24 Feb 2023 08:33:07 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > > > > Hi Geert, > > > > > > > > On Fri, 24 Feb 2023 09:31:50 +0100 > > > > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > > > > > > > Hi Paul, > > > > > > > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > Like this? > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > > --- a/init/Kconfig > > > > > > +++ b/init/Kconfig > > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > > config BOOT_CONFIG_FORCE > > > > > > bool "Force unconditional bootconfig processing" > > > > > > depends on BOOT_CONFIG > > > > > > + default y if BOOT_CONFIG_EMBED > > > > > > help > > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > > > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > > > > > > > After this change, an all{mod,yes}config kernel has: > > > > > > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > > > Will this actually work? I haven't tried booting such a kernel yet. > > > > > > > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > > > > but do not add the bootconfig file to initrd. You may see below message > > > > on boot log, but kernel boots normally. :) > > > > > > > > 'bootconfig' found on command line, but no bootconfig found > > > > > > > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > > > > will be shown without 'bootconfig' on command line.) > > > > > > I just tried it again, and for me it just silently ignores the bootconfig > > > setup. Which is what I recall happening when I tried it when creating > > > the patch. > > > > > > Here is the .config file pieces of interest: > > > > > > CONFIG_BOOT_CONFIG=y > > > CONFIG_BOOT_CONFIG_FORCE=y > > > CONFIG_BOOT_CONFIG_EMBED=y > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > Anyone else seeing something different? > > > > Hmm, from the code, I think you'll see that message in early console log. > > > > In init/main.c: > > > > ---- > > #ifdef CONFIG_BOOT_CONFIG > > /* Is bootconfig on command line? */ > > static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE); > > static size_t initargs_offs; > > #else > > ---- > > And > > ---- > > static void __init setup_boot_config(void) > > { > > ... > > strscpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); > > err = parse_args("bootconfig", tmp_cmdline, NULL, 0, 0, 0, NULL, > > bootconfig_params); > > > > if (IS_ERR(err) || !bootconfig_found) > > return; > > > > /* parse_args() stops at the next param of '--' and returns an address */ > > if (err) > > initargs_offs = err - tmp_cmdline; > > > > if (!data) { > > pr_err("'bootconfig' found on command line, but no bootconfig found\n"); > > return; > > } > > ---- > > > > Thus, if CONFIG_BOOT_CONFIG_FORCE=y, the process passes the below check > > > > if (IS_ERR(err) || !bootconfig_found) > > return; > > > > But since we have an empty 'data', the error should be printed. > > And you are quite right, the runs without data files did get me this: > > 'bootconfig' found on command line, but no bootconfig found > > Please accept my apologies for my confusion. No problem :), so should we skip this message if CONFIG_BOOT_CONFIG_FORCE=y, because user may not pass 'bootconfig'? Or, may be we can make it; "Skip bootconfig, because no bootconfig data found." so that user can notice they forget to set up bootconfig data? Thank you, > > Thanx, Paul > > > Thank you, > > > > > > > > Thanx, Paul > > > > > > > Thank you! > > > > > > > > > > > > > > Gr{oetje,eeting}s, > > > > > > > > > > Geert > > > > > > > > > > -- > > > > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > > > > > > > In personal conversations with technical people, I call myself a hacker. But > > > > > when I'm talking to journalists I just say "programmer" or something like that. > > > > > -- Linus Torvalds > > > > > > > > > > > > -- > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Mon, Feb 27, 2023 at 08:16:32AM +0900, Masami Hiramatsu wrote: > On Fri, 24 Feb 2023 17:19:10 -0800 > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > On Sat, Feb 25, 2023 at 09:58:11AM +0900, Masami Hiramatsu wrote: > > > On Fri, 24 Feb 2023 08:33:07 -0800 > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > > > > > Hi Geert, > > > > > > > > > > On Fri, 24 Feb 2023 09:31:50 +0100 > > > > > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > > > > > > > > > Hi Paul, > > > > > > > > > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > > > --- a/init/Kconfig > > > > > > > +++ b/init/Kconfig > > > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > > > config BOOT_CONFIG_FORCE > > > > > > > bool "Force unconditional bootconfig processing" > > > > > > > depends on BOOT_CONFIG > > > > > > > + default y if BOOT_CONFIG_EMBED > > > > > > > help > > > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > > > > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > > > > > > > > > After this change, an all{mod,yes}config kernel has: > > > > > > > > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > > > > > Will this actually work? I haven't tried booting such a kernel yet. > > > > > > > > > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > > > > > but do not add the bootconfig file to initrd. You may see below message > > > > > on boot log, but kernel boots normally. :) > > > > > > > > > > 'bootconfig' found on command line, but no bootconfig found > > > > > > > > > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > > > > > will be shown without 'bootconfig' on command line.) > > > > > > > > I just tried it again, and for me it just silently ignores the bootconfig > > > > setup. Which is what I recall happening when I tried it when creating > > > > the patch. > > > > > > > > Here is the .config file pieces of interest: > > > > > > > > CONFIG_BOOT_CONFIG=y > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > Anyone else seeing something different? > > > > > > Hmm, from the code, I think you'll see that message in early console log. > > > > > > In init/main.c: > > > > > > ---- > > > #ifdef CONFIG_BOOT_CONFIG > > > /* Is bootconfig on command line? */ > > > static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE); > > > static size_t initargs_offs; > > > #else > > > ---- > > > And > > > ---- > > > static void __init setup_boot_config(void) > > > { > > > ... > > > strscpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); > > > err = parse_args("bootconfig", tmp_cmdline, NULL, 0, 0, 0, NULL, > > > bootconfig_params); > > > > > > if (IS_ERR(err) || !bootconfig_found) > > > return; > > > > > > /* parse_args() stops at the next param of '--' and returns an address */ > > > if (err) > > > initargs_offs = err - tmp_cmdline; > > > > > > if (!data) { > > > pr_err("'bootconfig' found on command line, but no bootconfig found\n"); > > > return; > > > } > > > ---- > > > > > > Thus, if CONFIG_BOOT_CONFIG_FORCE=y, the process passes the below check > > > > > > if (IS_ERR(err) || !bootconfig_found) > > > return; > > > > > > But since we have an empty 'data', the error should be printed. > > > > And you are quite right, the runs without data files did get me this: > > > > 'bootconfig' found on command line, but no bootconfig found > > > > Please accept my apologies for my confusion. > > No problem :), so should we skip this message if CONFIG_BOOT_CONFIG_FORCE=y, > because user may not pass 'bootconfig'? > > Or, may be we can make it; > > "Skip bootconfig, because no bootconfig data found." > > so that user can notice they forget to set up bootconfig data? Good point, the current message could be quite confusing. Me, I already knew what was happening, so I just looked for the change in console-log output. ;-) How about something like this? "No bootconfig data provided, so skipping bootconfig" But as you say, keeping the current message in kernels that have been built with CONFIG_BOOT_CONFIG_FORCE=n. Thanx, Paul > Thank you, > > > > > > Thanx, Paul > > > > > Thank you, > > > > > > > > > > > Thanx, Paul > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > Gr{oetje,eeting}s, > > > > > > > > > > > > Geert > > > > > > > > > > > > -- > > > > > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > > > > > > > > > In personal conversations with technical people, I call myself a hacker. But > > > > > > when I'm talking to journalists I just say "programmer" or something like that. > > > > > > -- Linus Torvalds > > > > > > > > > > > > > > > -- > > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > -- > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > -- > Masami Hiramatsu (Google) <mhiramat@kernel.org>
On Mon, 27 Feb 2023 08:56:28 -0800 "Paul E. McKenney" <paulmck@kernel.org> wrote: > On Mon, Feb 27, 2023 at 08:16:32AM +0900, Masami Hiramatsu wrote: > > On Fri, 24 Feb 2023 17:19:10 -0800 > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > On Sat, Feb 25, 2023 at 09:58:11AM +0900, Masami Hiramatsu wrote: > > > > On Fri, 24 Feb 2023 08:33:07 -0800 > > > > "Paul E. McKenney" <paulmck@kernel.org> wrote: > > > > > > > > > On Sat, Feb 25, 2023 at 01:13:06AM +0900, Masami Hiramatsu wrote: > > > > > > Hi Geert, > > > > > > > > > > > > On Fri, 24 Feb 2023 09:31:50 +0100 > > > > > > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > > > > > > > > > > > > Hi Paul, > > > > > > > > > > > > > > On Sat, Jan 7, 2023 at 5:33 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > > > > > On Sun, Jan 08, 2023 at 12:22:15AM +0900, Masami Hiramatsu wrote: > > > > > > > > > BTW, maybe CONFIG_BOOT_CONFIG_EMBED is better to select this. > > > > > > > > > (or at least recommend to enable this) > > > > > > > > > > > > > > > > Like this? > > > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > > commit d09a1505c51a70da38b34ac38062977299aef742 > > > > > > > > Author: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > Date: Sat Jan 7 08:09:22 2023 -0800 > > > > > > > > > > > > > > > > bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED > > > > > > > > > > > > > > > > When a kernel is built with CONFIG_BOOT_CONFIG_EMBED=y, the intention > > > > > > > > will normally be to unconditionally provide the specified kernel-boot > > > > > > > > arguments to the kernel, as opposed to requiring a separately provided > > > > > > > > bootconfig parameter. Therefore, make the BOOT_CONFIG_FORCE Kconfig > > > > > > > > option default to y in kernels built with CONFIG_BOOT_CONFIG_EMBED=y. > > > > > > > > > > > > > > > > The old semantics may be obtained by manually overriding this default. > > > > > > > > > > > > > > > > Suggested-by: Masami Hiramatsu <mhiramat@kernel.org> > > > > > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > > > > > > > > > > > > > diff --git a/init/Kconfig b/init/Kconfig > > > > > > > > index 0fb19fa0edba9..97a0f14d9020d 100644 > > > > > > > > --- a/init/Kconfig > > > > > > > > +++ b/init/Kconfig > > > > > > > > @@ -1379,6 +1379,7 @@ config BOOT_CONFIG > > > > > > > > config BOOT_CONFIG_FORCE > > > > > > > > bool "Force unconditional bootconfig processing" > > > > > > > > depends on BOOT_CONFIG > > > > > > > > + default y if BOOT_CONFIG_EMBED > > > > > > > > help > > > > > > > > With this Kconfig option set, BOOT_CONFIG processing is carried > > > > > > > > out even when the "bootconfig" kernel-boot parameter is omitted. > > > > > > > > > > > > > > Thanks for your patch, which is now commit 6ded8a28ed80e4cc > > > > > > > ("bootconfig: Default BOOT_CONFIG_FORCE to y if BOOT_CONFIG_EMBED"). > > > > > > > > > > > > > > After this change, an all{mod,yes}config kernel has: > > > > > > > > > > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > > > > > > > Will this actually work? I haven't tried booting such a kernel yet. > > > > > > > > > > > > Yeah, good question. It is same as when you boot the kernel with 'bootconfig' > > > > > > but do not add the bootconfig file to initrd. You may see below message > > > > > > on boot log, but kernel boots normally. :) > > > > > > > > > > > > 'bootconfig' found on command line, but no bootconfig found > > > > > > > > > > > > (Maybe it is better to fix the message, because if BOOT_CONFIG_FORCE=y, this > > > > > > will be shown without 'bootconfig' on command line.) > > > > > > > > > > I just tried it again, and for me it just silently ignores the bootconfig > > > > > setup. Which is what I recall happening when I tried it when creating > > > > > the patch. > > > > > > > > > > Here is the .config file pieces of interest: > > > > > > > > > > CONFIG_BOOT_CONFIG=y > > > > > CONFIG_BOOT_CONFIG_FORCE=y > > > > > CONFIG_BOOT_CONFIG_EMBED=y > > > > > CONFIG_BOOT_CONFIG_EMBED_FILE="" > > > > > > > > > > Anyone else seeing something different? > > > > > > > > Hmm, from the code, I think you'll see that message in early console log. > > > > > > > > In init/main.c: > > > > > > > > ---- > > > > #ifdef CONFIG_BOOT_CONFIG > > > > /* Is bootconfig on command line? */ > > > > static bool bootconfig_found = IS_ENABLED(CONFIG_BOOT_CONFIG_FORCE); > > > > static size_t initargs_offs; > > > > #else > > > > ---- > > > > And > > > > ---- > > > > static void __init setup_boot_config(void) > > > > { > > > > ... > > > > strscpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); > > > > err = parse_args("bootconfig", tmp_cmdline, NULL, 0, 0, 0, NULL, > > > > bootconfig_params); > > > > > > > > if (IS_ERR(err) || !bootconfig_found) > > > > return; > > > > > > > > /* parse_args() stops at the next param of '--' and returns an address */ > > > > if (err) > > > > initargs_offs = err - tmp_cmdline; > > > > > > > > if (!data) { > > > > pr_err("'bootconfig' found on command line, but no bootconfig found\n"); > > > > return; > > > > } > > > > ---- > > > > > > > > Thus, if CONFIG_BOOT_CONFIG_FORCE=y, the process passes the below check > > > > > > > > if (IS_ERR(err) || !bootconfig_found) > > > > return; > > > > > > > > But since we have an empty 'data', the error should be printed. > > > > > > And you are quite right, the runs without data files did get me this: > > > > > > 'bootconfig' found on command line, but no bootconfig found > > > > > > Please accept my apologies for my confusion. > > > > No problem :), so should we skip this message if CONFIG_BOOT_CONFIG_FORCE=y, > > because user may not pass 'bootconfig'? > > > > Or, may be we can make it; > > > > "Skip bootconfig, because no bootconfig data found." > > > > so that user can notice they forget to set up bootconfig data? > > Good point, the current message could be quite confusing. Me, I already > knew what was happening, so I just looked for the change in console-log > output. ;-) > > How about something like this? > > "No bootconfig data provided, so skipping bootconfig" > > But as you say, keeping the current message in kernels that have been > built with CONFIG_BOOT_CONFIG_FORCE=n. That sounds good to me. OK, let me update that. Thank you, > > Thanx, Paul > > > Thank you, > > > > > > > > > > Thanx, Paul > > > > > > > Thank you, > > > > > > > > > > > > > > Thanx, Paul > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > > > > > Gr{oetje,eeting}s, > > > > > > > > > > > > > > Geert > > > > > > > > > > > > > > -- > > > > > > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > > > > > > > > > > > > > In personal conversations with technical people, I call myself a hacker. But > > > > > > > when I'm talking to journalists I just say "programmer" or something like that. > > > > > > > -- Linus Torvalds > > > > > > > > > > > > > > > > > > -- > > > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > > > > > > > -- > > > > Masami Hiramatsu (Google) <mhiramat@kernel.org> > > > > > > -- > > Masami Hiramatsu (Google) <mhiramat@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