[GIT PULL] liveupdate: updates for 7.3-rc1, part 2
From: Mike Rapoport
Date: Sun Aug 23 2026 - 09:36:53 EST
Hi Linus,
This is the second part of liveupdate changes for v7.3-rc1.
The changes here depend on the work merged via Andrew's tree, so I waited for
his pull request to go in.
The following changes since commit 6d098029de0902372fdaa07e049db3866cbd8907:
mm/mm_init: fold __init_page_from_nid() into __init_deferred_page() (2026-07-28 21:12:00 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux.git tags/liveupdate-v7.3-rc1-20260823
for you to fetch changes up to bc0f793c5c41601b273a2ca64c768adca1d447f5:
Merge patch series "kho: make boot time huge page allocation work nicely with KHO" (2026-08-04 09:50:03 +0300)
----------------------------------------------------------------
kho: make boot time huge page allocation work nicely with KHO
Today allocation of gigantic pages in HugeTLB cannot work reliably with KHO:
* HugeTLB allocates gigantic pages using memblock and autoscaling of KHO
scratch accounts for these allocations. When gigantic pages occupy half
of the memory of more, KHO fails to allocate its scratch memory.
* After kexec handover, memblock allocations exclusively use KHO scratch
that is not supposed to contain preserved memory. This essentially blocks
preservation of HugeTLB with gigantic pages.
Extend early memory pools available for KHO kernel with areas that are
guaranteed not to contain preserved memory.
----------------------------------------------------------------
Mike Rapoport (Microsoft) (2):
Merge branch 'mm-stable-6d098029de09' of https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm into kho-scratch
Merge patch series "kho: make boot time huge page allocation work nicely with KHO"
Pratyush Yadav (Google) (21):
x86/setup: do not include kexec_handover.h from asm/setup.h
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
MAINTAINERS | 1 +
arch/x86/boot/compressed/kaslr.c | 2 +
arch/x86/include/asm/Kbuild | 1 +
arch/x86/include/asm/setup.h | 2 -
arch/x86/kernel/setup.c | 1 +
include/asm-generic/kexec_handover.h | 12 +
include/linux/kexec_handover.h | 31 +-
include/linux/kho/abi/kexec_handover.h | 9 +-
include/linux/kho_radix_tree.h | 60 ++-
include/linux/memblock.h | 23 +-
kernel/liveupdate/Makefile | 1 -
kernel/liveupdate/kexec_handover.c | 525 +++++++++++++++++++-----
kernel/liveupdate/kexec_handover_debug.c | 25 --
kernel/liveupdate/kexec_handover_internal.h | 9 -
mm/hugetlb.c | 9 +-
mm/memblock.c | 154 +++++--
mm/mm_init.c | 29 +-
tools/testing/memblock/internal.h | 5 +
tools/testing/memblock/linux/kexec_handover.h | 9 +
tools/testing/memblock/linux/kho/abi/memblock.h | 10 +
tools/testing/memblock/linux/libfdt.h | 9 +
21 files changed, 673 insertions(+), 254 deletions(-)
create mode 100644 include/asm-generic/kexec_handover.h
delete mode 100644 kernel/liveupdate/kexec_handover_debug.c
create mode 100644 tools/testing/memblock/linux/kexec_handover.h
create mode 100644 tools/testing/memblock/linux/kho/abi/memblock.h
create mode 100644 tools/testing/memblock/linux/libfdt.h