From: Breno Leitao <leitao@debian.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, oss@malat.biz, paulmck@kernel.org,
rostedt@goodmis.org, kernel-team@meta.com
Subject: Re: [PATCH v2] bootconfig: Apply early options from embedded config
Date: Fri, 27 Mar 2026 03:06:41 -0700 [thread overview]
Message-ID: <acZPZ4XKy4QynznK@gmail.com> (raw)
In-Reply-To: <20260325232204.05edbb21c7602b6408ca007b@kernel.org>
Hi Masami,
On Wed, Mar 25, 2026 at 11:22:04PM +0900, Masami Hiramatsu wrote:
> On Wed, 25 Mar 2026 03:05:38 -0700
> Breno Leitao <leitao@debian.org> wrote:
> > +/*
> > + * bootconfig_apply_early_params - dispatch kernel.* keys from the embedded
> > + * bootconfig as early_param() calls.
> > + *
> > + * early_param() handlers must run before most of the kernel initialises
> > + * (e.g. before the GIC driver reads irqchip.gicv3_pseudo_nmi). A bootconfig
> > + * attached to the initrd arrives too late for this because the initrd is not
> > + * mapped yet when early params are processed. The embedded bootconfig lives
> > + * in the kernel image itself (.init.data), so it is always reachable.
> > + *
> > + * This function is called from setup_boot_config() which runs in
> > + * start_kernel() before parse_early_param(), making the timing correct.
> > + */
> > +static void __init bootconfig_apply_early_params(void)
>
> [sashiko comment]
> | Does this run early enough for architectural parameters?
> | While setup_boot_config() runs before parse_early_param() in start_kernel(),
> | it runs after setup_arch(). setup_boot_config() relies on xbc_init() which
> | uses the memblock allocator, requiring setup_arch() to have already
> | initialized it.
> | However, the kernel expects many early parameters (like mem=, earlycon,
> | noapic, and iommu) to be parsed during setup_arch() via the architecture's
> | call to parse_early_param(). Since setup_arch() completes before
> | setup_boot_config() runs, will these architectural early parameters be
> | silently ignored because the decisions they influence were already
> | finalized?
>
> This is the major reason that I did not support early parameter
> in bootconfig. Some archs initialize kernel_cmdline in setup_arch()
> and setup early parameters in it.
Would it be feasible to document which parameters are architecture-specific
and must be processed during setup_arch()?
We could potentially introduce a third parameter category alongside the
existing early_param() and __setup():
* early_param()
* __setup()
* early_arch_param() (New)
This would allow bootconfig to support __setup() and early_param() while
explicitly excluding early_arch_param() from bootconfig processing.
This would move break down the early parameters in those that can be
easily handled.
> To fix this, we need to change setup_arch() for each architecture so
> that it calls this bootconfig_apply_early_params().
Could we instead integrate this into parse_early_param() itself? That
approach would avoid the need to modify each architecture individually.
Thanks for looking at it,
--breno
next prev parent reply other threads:[~2026-03-27 10:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-25 10:05 [PATCH v2] bootconfig: Apply early options from embedded config Breno Leitao
2026-03-25 14:22 ` Masami Hiramatsu
2026-03-26 14:30 ` Masami Hiramatsu
2026-03-27 10:18 ` Breno Leitao
2026-03-27 14:16 ` Masami Hiramatsu
2026-03-27 16:11 ` Breno Leitao
2026-03-27 10:06 ` Breno Leitao [this message]
2026-03-27 13:37 ` Masami Hiramatsu
2026-03-30 13:15 ` Breno Leitao
2026-03-30 15:04 ` Breno Leitao
2026-03-31 3:58 ` Masami Hiramatsu
2026-03-31 15:27 ` Breno Leitao
2026-04-01 13:48 ` Masami Hiramatsu
2026-04-01 15:01 ` Breno Leitao
2026-04-03 2:45 ` Masami Hiramatsu
2026-04-07 10:19 ` Breno Leitao
2026-04-15 11:15 ` Breno Leitao
2026-04-17 1:46 ` Masami Hiramatsu
2026-03-31 0:00 ` Masami Hiramatsu
2026-03-31 10:18 ` Kiryl Shutsemau
2026-04-01 1:02 ` Masami Hiramatsu
2026-04-01 9:40 ` Kiryl Shutsemau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acZPZ4XKy4QynznK@gmail.com \
--to=leitao@debian.org \
--cc=corbet@lwn.net \
--cc=kernel-team@meta.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=oss@malat.biz \
--cc=paulmck@kernel.org \
--cc=rostedt@goodmis.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.