[PATCH 0/2] init, hugetlb: fix early parameter ordering

Zhenghui Hao posted 2 patches 1 week ago
Only 0 patches received!
There is a newer version of this series
init/main.c  |  8 ++++----
mm/hugetlb.c | 14 ++++++++++++++
2 files changed, 18 insertions(+), 4 deletions(-)
[PATCH 0/2] init, hugetlb: fix early parameter ordering
Posted by Zhenghui Hao 1 week ago
hugetlb records its command line parameters from early_param()
handlers and consumes them later from hugetlb_bootmem_alloc().

Commit d49004c5f0c1 ("arch, mm: consolidate initialization of nodes,
zones and memory map") moved that consumer into mm_core_init_early(),
which runs before the generic parse_early_param() call in
start_kernel().  Architectures that call parse_early_param() from
setup_arch() are not affected, but on parisc the parameters are then
recorded after they have already been consumed and are silently
dropped.

Patch 1/2 moves parse_early_param() before mm_core_init_early(),
together with jump_label_init() and static_call_init() so that the
"parameters may set static keys" guarantee still holds.

Patch 2/2 makes this class of ordering problem non-silent.  It cannot
fire once 1/2 is applied; if you would rather take only the fix,
please drop 2/2.

Not tested on parisc hardware.

Zhenghui Hao (2):
  init: parse early parameters before memory initialization
  hugetlb: report cmdline parameters recorded too late

 init/main.c  |  8 ++++----
 mm/hugetlb.c | 14 ++++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)


base-commit: 9b87fdc9af2fbfcdb5c24a64139685ef80f6573f
-- 
2.53.0
[PATCH 0/2] init, hugetlb: fix early parameter ordering
Posted by Mike Rapoport 1 week ago
Hi,

On 2026-09-17 14:55 +0800, Zhenghui Hao wrote:
> hugetlb records its command line parameters from early_param()
> handlers and consumes them later from hugetlb_bootmem_alloc().
> 
> Commit d49004c5f0c1 ("arch, mm: consolidate initialization of nodes,
> zones and memory map") moved that consumer into mm_core_init_early(),
> which runs before the generic parse_early_param() call in
> start_kernel().  Architectures that call parse_early_param() from
> setup_arch() are not affected, but on parisc the parameters are then
> recorded after they have already been consumed and are silently
> dropped.

Since parisc is one of very few architectures that does not call
parse_early_param() from setup_arch(), I think an easier fix would be
local to parisc.

And there is another related question more to parisc maintainers: do we
really need hugetlb on parisc these days?

> Patch 1/2 moves parse_early_param() before mm_core_init_early(),
> together with jump_label_init() and static_call_init() so that the
> "parameters may set static keys" guarantee still holds.
> 
> Patch 2/2 makes this class of ordering problem non-silent.  It cannot
> fire once 1/2 is applied; if you would rather take only the fix,
> please drop 2/2.
> 
> Not tested on parisc hardware.
> 
> Zhenghui Hao (2):
>   init: parse early parameters before memory initialization
>   hugetlb: report cmdline parameters recorded too late
> 
>  init/main.c  |  8 ++++----
>  mm/hugetlb.c | 14 ++++++++++++++
>  2 files changed, 18 insertions(+), 4 deletions(-)
> 
> 
> base-commit: 9b87fdc9af2fbfcdb5c24a64139685ef80f6573f
> -- 
> 2.53.0
> 
>
[PATCH 0/2] init, hugetlb: fix early parameter ordering
Posted by zhenghui.hao 1 week ago
Hi,

> Since parisc is one of very few architectures that does not call
> parse_early_param() from setup_arch(), I think an easier fix would be
> local to parisc.

Agreed, that is simpler.

Whether a fix is needed at all depends on the answer to your second
question.  If hugetlb is not needed on parisc anymore, there is nothing
left to fix and I will drop this series.  If it stays, I will send v2
with the change inside parisc's setup_arch(), keeping 2/2 so that the
same kind of ordering problem would at least show up in the log.

So I will wait for the parisc maintainers on that one.

Thanks,
Zhenghui
Re: [PATCH 0/2] init, hugetlb: fix early parameter ordering
Posted by Mike Rapoport 1 week ago
On Thu, Sep 17, 2026 at 05:19:46PM +0800, zhenghui.hao wrote:
> Hi,
> 
> > Since parisc is one of very few architectures that does not call
> > parse_early_param() from setup_arch(), I think an easier fix would be
> > local to parisc.
 

you should really fix your email setup :/

> Agreed, that is simpler.
> 
> Whether a fix is needed at all depends on the answer to your second
> question.  If hugetlb is not needed on parisc anymore, there is nothing
> left to fix and I will drop this series.  If it stays, I will send v2
> with the change inside parisc's setup_arch(), keeping 2/2 so that the
> same kind of ordering problem would at least show up in the log.
> 
> So I will wait for the parisc maintainers on that one.
> 
> Thanks,
> Zhenghui

-- 
Sincerely yours,
Mike.