Re: [PATCH v4 00/27] hugetlb/CMA improvements for large systems
From: Frank van der Linden
Date: Wed Feb 19 2025 - 13:10:45 EST
I forgot to add this to the cover letter:
These first 4 are the multi-range CMA support, and can be reviewed as
an independent series:
> mm/cma: export total and free number of pages for CMA areas
> mm, cma: support multiple contiguous ranges, if requested
> mm/cma: introduce cma_intersects function
> mm, hugetlb: use cma_declare_contiguous_multi
These implement huge/gigantic page pre-HVO, and can also be reviewed
as a separate series if that's more convenient:
> mm/hugetlb: remove redundant __ClearPageReserved
> mm/hugetlb: use online nodes for bootmem allocation
> mm/hugetlb: convert cmdline parameters from setup to early
> x86/mm: make register_page_bootmem_memmap handle PTE mappings
> mm/bootmem_info: export register_page_bootmem_memmap
> mm/sparse: allow for alternate vmemmap section init at boot
> mm/hugetlb: set migratetype for bootmem folios
> mm: define __init_reserved_page_zone function
> mm/hugetlb: check bootmem pages for zone intersections
> mm/sparse: add vmemmap_*_hvo functions
> mm/hugetlb: deal with multiple calls to hugetlb_bootmem_alloc
> mm/hugetlb: move huge_boot_pages list init to hugetlb_bootmem_alloc
> mm/hugetlb: add pre-HVO framework
> mm/hugetlb_vmemmap: fix hugetlb_vmemmap_restore_folios definition
> mm/hugetlb: do pre-HVO for bootmem allocated pages
> x86/setup: call hugetlb_bootmem_alloc early
> x86/mm: set ARCH_WANT_SPARSEMEM_VMEMMAP_PREINIT
These implement early allocations from CMA, enabling pre-HVO of
pre-allocated CMA hugepages. It depends on the previous two groups of
patches:
> mm/cma: simplify zone intersection check
> mm/cma: introduce a cma validate function
> mm/cma: introduce interface for early reservations
> mm/hugetlb: add hugetlb_cma_only cmdline option
> mm/hugetlb: enable bootmem allocation from CMA areas
> mm/hugetlb: move hugetlb CMA code in to its own file
>