On Fri, Mar 27, 2026 at 10:37:44PM +0900, Masami Hiramatsu wrote:
> On Fri, 27 Mar 2026 03:06:41 -0700
> Breno Leitao <[email protected]> wrote:
> > > 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.
>
> Ah, indeed.
I investigated integrating bootconfig into parse_early_param() and hit a
blocker: xbc_init() and xbc_make_cmdline() depend on memblock_alloc(), but on
most architectures (x86, arm64, arm, s390, riscv) parse_early_param() is called
from setup_arch() _before_ memblock is initialized.
So, bootconfig will not be available as early as parse_early_param().
An alternative is replace memblock allocations in lib/bootconfig.c with static
__initdata buffers, similar to Petr's approach in 2023:
https://lore.kernel.org/all/[email protected]/
But, there was concerns about the allocation size:
Petr Malat <[email protected]> wrote:
> To allow handling of early options, it's necessary to eliminate
allocations
> from embedded bootconfig handling
"Hm, my concern is that this can introduce some sort of overhead to
parse the bootconfig."