The patch titled Subject: mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix has been added to the -mm mm-unstable branch. Its filename is mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix Date: Fri Sep 15 03:52:55 PM PDT 2023 make it nicer for 80 cols Cc: Usama Arif <usama.arif@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/hugetlb.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) --- a/mm/hugetlb.c~mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix +++ a/mm/hugetlb.c @@ -3151,7 +3151,8 @@ found: /* * Only initialize the head struct page in memmap_init_reserved_pages, - * rest of the struct pages will be initialized by the HugeTLB subsystem itself. + * rest of the struct pages will be initialized by the HugeTLB + * subsystem itself. * The head struct page is used to get folio information by the HugeTLB * subsystem like zone id and node id. */ @@ -3166,8 +3167,8 @@ found: /* Initialize [start_page:end_page_number] tail struct pages of a hugepage */ static void __init hugetlb_folio_init_tail_vmemmap(struct folio *folio, - unsigned long start_page_number, - unsigned long end_page_number) + unsigned long start_page_number, + unsigned long end_page_number) { enum zone_type zone = zone_idx(folio_zone(folio)); int nid = folio_nid(folio); @@ -3185,8 +3186,9 @@ static void __init hugetlb_folio_init_ta } } -static void __init hugetlb_folio_init_vmemmap(struct folio *folio, struct hstate *h, - unsigned long nr_pages) +static void __init hugetlb_folio_init_vmemmap(struct folio *folio, + struct hstate *h, + unsigned long nr_pages) { int ret; @@ -3216,12 +3218,14 @@ static void __init gather_bootmem_preall VM_BUG_ON(!hstate_is_gigantic(h)); WARN_ON(folio_ref_count(folio) != 1); - hugetlb_folio_init_vmemmap(folio, h, HUGETLB_VMEMMAP_RESERVE_PAGES); + hugetlb_folio_init_vmemmap(folio, h, + HUGETLB_VMEMMAP_RESERVE_PAGES); prep_new_hugetlb_folio(h, folio, folio_nid(folio)); /* If HVO fails, initialize all tail struct pages */ if (!HPageVmemmapOptimized(&folio->page)) - hugetlb_folio_init_tail_vmemmap(folio, HUGETLB_VMEMMAP_RESERVE_PAGES, - pages_per_huge_page(h)); + hugetlb_folio_init_tail_vmemmap(folio, + HUGETLB_VMEMMAP_RESERVE_PAGES, + pages_per_huge_page(h)); free_huge_folio(folio); /* add to the hugepage allocator */ /* _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are mm-shmem-fix-race-in-shmem_undo_range-w-thp-fix.patch revert-scripts-gdb-symbols-add-specific-ko-module-load-command.patch mm-memcg-add-thp-swap-out-info-for-anonymous-reclaim-fix.patch mm-hugetlb-skip-initialization-of-gigantic-tail-struct-pages-if-freed-by-hvo-fix.patch kthread-add-kthread_stop_put-v2-fix.patch