Re: [PATCH 6.12 0000/1102] 6.12.111-rc1 review
From: Sasha Levin
Date: Fri Sep 18 2026 - 12:31:20 EST
On Thu, Sep 17, 2026 at 07:35:34PM +0000, Brett A C Sheffield wrote:
> 6.12.111-rc1 hangs on boot on this machine (AMD Ryzen 9 9950X).
[...]
> # first 'bad' commit: [22ae428b0045981bd19f8c75f700a67198062f32]
> mm/hugetlb: initialize gigantic bootmem hugepage struct pages earlier
Thanks for the bisect, it lands exactly on the problem. Dropped from the
6.12 queue:
b1b7c045e808 ("mm/hugetlb: initialize gigantic bootmem hugepage
struct pages earlier")
For the record, why it breaks only on 6.12: the backport moves
gather_bootmem_prealloc() out of hugetlb_init() (a subsys_initcall) into
page_alloc_init_late(), which runs well before do_basic_setup(). Upstream that
reordering is safe because since v6.15 the per-node huge_boot_pages[] list
heads are initialized unconditionally and very early in
hugetlb_bootmem_alloc(). 6.12 has neither that function nor the commits that
added it, so the only INIT_LIST_HEAD() of those lists is the lazy loop in
hugetlb_hstate_alloc_pages(), reached early only when a gigantic hugepage is
requested on the command line. Boot a CONFIG_HUGETLB_PAGE=y kernel without
hugepagesz=/hugepages= and the relocated code walks an all-zero list head, so
the first iteration dereferences NULL.
Nothing else in the queue depended on it, so it comes out on its own.
--
Thanks,
Sasha