Files
linux/arch/powerpc/include/asm
Frank van der Linden d2d7867140 mm/hugetlb: enable bootmem allocation from CMA areas
If hugetlb_cma_only is enabled, we know that hugetlb pages can only be
allocated from CMA.  Now that there is an interface to do early
reservations from a CMA area (returning memblock memory), it can be used
to allocate hugetlb pages from CMA.

This also allows for doing pre-HVO on these pages (if enabled).

Make sure to initialize the page structures and associated data correctly.
Create a flag to signal that a hugetlb page has been allocated from CMA
to make things a little easier.

Some configurations of powerpc have a special hugetlb bootmem allocator,
so introduce a boolean arch_specific_huge_bootmem_alloc that returns true
if such an allocator is present.  In that case, CMA bootmem allocations
can't be used, so check that function before trying.

Link: https://lkml.kernel.org/r/20250228182928.2645936-27-fvdl@google.com
Signed-off-by: Frank van der Linden <fvdl@google.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Joao Martins <joao.m.martins@oracle.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Roman Gushchin (Cruise) <roman.gushchin@linux.dev>
Cc: Usama Arif <usamaarif642@gmail.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Yu Zhao <yuzhao@google.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-03-16 22:06:31 -07:00
..
2023-10-20 23:18:07 +11:00
2023-10-20 23:18:07 +11:00
2023-12-08 12:02:37 +01:00
2023-12-08 12:02:37 +01:00
2021-03-24 14:09:29 +11:00
2022-06-29 19:37:07 +10:00
2024-06-28 22:28:48 +10:00
2024-06-28 22:28:48 +10:00
2024-02-15 00:14:06 +11:00
2024-05-08 00:21:30 +10:00
2023-12-08 12:02:37 +01:00
2024-10-16 00:13:04 +02:00
2024-09-17 01:06:59 -07:00
2021-02-09 01:09:44 +11:00
2024-05-08 00:21:30 +10:00
2022-05-08 22:15:40 +10:00
2022-12-07 20:14:49 +11:00
2024-06-28 22:28:48 +10:00
2023-08-24 22:33:16 +10:00
2022-09-28 19:22:09 +10:00
2024-10-29 23:01:52 +11:00
2024-05-08 00:21:30 +10:00
2022-07-27 21:36:05 +10:00
2022-01-30 21:17:00 -05:00