diff options
| author | Mike Rapoport (Microsoft) <rppt@kernel.org> | 2026-08-04 09:50:03 +0300 |
|---|---|---|
| committer | Mike Rapoport (Microsoft) <rppt@kernel.org> | 2026-08-04 09:50:03 +0300 |
| commit | bc0f793c5c41601b273a2ca64c768adca1d447f5 (patch) | |
| tree | acf4d825eac409f78834430f91000398945107e9 /tools/lib/python | |
| parent | 4b9c548d9bf16f46d75db79f192506e9929eb3ec (diff) | |
| parent | fdd843f2be1a639a1f7522388e43283b60f26397 (diff) | |
| download | linux-bc0f793c5c41601b273a2ca64c768adca1d447f5.tar.gz linux-bc0f793c5c41601b273a2ca64c768adca1d447f5.zip | |
Merge patch series "kho: make boot time huge page allocation work nicely with KHO"
Pratyush Yadav <pratyush@kernel.org> says:
Gigantic huge page allocation is somewhat broken currently with KHO.
First, they break scratch size accounting. Since they are allocated
using the memblock alloc APIs, they count towards RSRV_KERN, and this
scratch size when using scratch_scale. This means if huge pages take a
large enough chunk of system memory scratch size will blow up and fail
to allocate.
Second, scratch can not contain preserved memory, and if huge pages are
allocated from scratch, they will fail to be preserved with the upcoming
hugetlb preservation series [0].
Fix this by introducing the concept of extended scratch areas. They are
areas that the kernel discovers on boot by walking the KHO preserved
memory radix tree and finding free memory ranges.
[0] https://lore.kernel.org/linux-mm/20251206230222.853493-1-pratyush@kernel.org/T/#u
*patches from https://patch.msgid.link/20260801084833.1897543-1-pratyush@kernel.org/
kho: generalize radix tree APIs
kho: make radix max key width more obvious
kho: disallow wide keys in radix tree
kho: store incoming radix tree in kho_in
kho: move all memory retrieval logic to kho_mem_retrieve()
kho: add a struct for radix callbacks
kho: add callback for table pages
kho: add data argument to radix walk callback
kho: allow early-boot usage of the KHO radix tree
kho: allow destroying KHO radix tree
kho: add kho_radix_init_tree()
kho: expose kho_scratch_overlap() to kexec_handover.h
kho: initialize kho_scratch pointer earlier in boot
kho: initialize preserved memory map radix tree earlier
mm/mm_init: don't rely on memblock to get KHO scratch migratetype
kho: extend scratch
memblock: always include KHO headers
memblock: make HugeTLB bootmem allocation work with KHO
memblock: add memblock_reserved_hugetlb_size()
kho: exclude hugetlb memory from scratch size calculation
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
