linux/arch/x86/boot
Linus Torvalds 91959a31a3 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.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEeOVYVaWZL5900a/pOQOGJssO/ZEFAmqK9NwACgkQOQOGJssO
 /ZGN3wgAqX/mXawYnhwDW2J931VsT54RuEctSNTCZ4Va8CWfeVjSV2bD2BlM+ibi
 VtsvEAIdKb8tyx3t+3JLR3jrANE5XcxeDiS7sJG7QWaek6G++GdAmrm7q98rU7Pc
 rqX8kMf65AZpHuV5wzKgF1fuYYur5Y4sKK00GVq+hPyWshmeYhaa+nGtJNe67D1a
 CFw38r5WAPs/DwyvWg/3yfupbgTG6OShHPnKxqR7aaOJE4YnD3snsBM7hot/ZI7e
 kz4TqixkxKn1RXq0XDcj8w11LxhxxsI67x02Fnnc1ClgMynCgDOvRXW6B93qRIRM
 ZUK8fbzIxFDQHnfzWRXcIIsN7r54Ow==
 =JHVN
 -----END PGP SIGNATURE-----

Merge tag 'liveupdate-v7.3-rc1-20260823' of git://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux

Pull more liveupdate updates from Mike Rapoport:
 "Make boot time huge page allocation work nicely with kexec handover.

  Today allocation of gigantic pages in HugeTLB cannot work reliably
  with kexec handover (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"

* tag 'liveupdate-v7.3-rc1-20260823' of git://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux: (21 commits)
  kho: exclude hugetlb memory from scratch size calculation
  memblock: add memblock_reserved_hugetlb_size()
  memblock: make HugeTLB bootmem allocation work with KHO
  memblock: always include KHO headers
  kho: extend scratch
  mm/mm_init: don't rely on memblock to get KHO scratch migratetype
  kho: initialize preserved memory map radix tree earlier
  kho: initialize kho_scratch pointer earlier in boot
  kho: expose kho_scratch_overlap() to kexec_handover.h
  kho: add kho_radix_init_tree()
  kho: allow destroying KHO radix tree
  kho: allow early-boot usage of the KHO radix tree
  kho: add data argument to radix walk callback
  kho: add callback for table pages
  kho: add a struct for radix callbacks
  kho: move all memory retrieval logic to kho_mem_retrieve()
  kho: store incoming radix tree in kho_in
  kho: disallow wide keys in radix tree
  kho: make radix max key width more obvious
  kho: generalize radix tree APIs
  ...
2026-08-23 09:17:38 -07:00
..
compressed kho: make boot time huge page allocation work nicely with KHO 2026-08-23 09:17:38 -07:00
startup treewide: Explicitly include the x86 CPUID headers 2026-05-06 14:29:59 +02:00
.gitignore x86 boot build: make git ignore stale 'tools' directory 2025-03-24 23:09:14 -07:00
a20.c x86/boot: Clean up whitespace in a20.c 2025-11-28 20:29:52 +01:00
apm.c x86/boot: Fix comment spelling 2020-03-17 20:52:52 +01:00
bioscall.S x86/boot: Remove semicolon from "rep" prefixes 2025-04-18 09:32:57 +02:00
bitops.h x86/asm: Remove code depending on __GCC_ASM_FLAG_OUTPUTS__ 2025-09-08 15:38:06 +02:00
boot.h x86/{boot,mtrr}: Remove unused function declarations 2025-11-22 21:26:36 +01:00
cmdline.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
copy.S x86/boot: Remove semicolon from "rep" prefixes 2025-04-18 09:32:57 +02:00
cpu.c x86/cpu: Remove X86_FEATURE_NAMES 2023-05-15 20:03:08 +02:00
cpucheck.c x86/boot: Move boot_*msr helpers to asm/shared/msr.h 2025-10-30 16:29:53 +01:00
cpuflags.c x86/sev: Move GHCB page based HV communication out of startup code 2025-09-03 17:55:25 +02:00
cpuflags.h x86/boot: Do not test if AC and ID eflags are changeable on x86_64 2025-03-08 20:36:26 +01:00
ctype.h
early_serial_console.c x86/boot: Validate console=uart8250 baud rate to fix early boot hang 2026-07-14 11:01:33 +02:00
edd.c x86/boot: Use bool and IS_ENABLED() to simplify query_edd() 2026-08-04 19:45:55 +02:00
genimage.sh x86/build: Fix broken copy command in genimage.sh when making isoimage 2025-02-25 21:13:33 +01:00
header.S x86/efi: Implement support for embedding SBAT data for x86 2025-06-21 13:53:44 +02:00
install.sh kbuild: Abort make on install failures 2024-07-20 13:34:54 +09:00
io.h x86/boot: Port I/O: Allow to hook up alternative helpers 2022-04-07 08:27:52 -07:00
main.c x86/boot: Use IS_ENABLED() to simplify built-in-or-module checks 2026-08-04 19:45:55 +02:00
Makefile x86/efi: Implement support for embedding SBAT data for x86 2025-06-21 13:53:44 +02:00
memory.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 2019-06-19 17:09:53 +02:00
mkcpustr.c x86/cpufeatures: Generate the <asm/cpufeaturemasks.h> header based on build config 2025-03-19 11:15:11 +01:00
mtools.conf.in x86/boot: Fix make hdimage with older versions of mtools 2021-09-29 11:06:47 +02:00
pm.c x86/asm: Always set A (accessed) flag in GDT descriptors 2023-12-20 10:57:51 +01:00
pmjump.S x86/asm: Do not annotate functions with GLOBAL 2019-10-18 11:25:58 +02:00
printf.c x86/boot: Address clang -Wimplicit-fallthrough in vsprintf() 2024-05-17 09:22:56 +02:00
regs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 83 2019-05-24 17:37:52 +02:00
setup.ld x86/boot: Drop CRC-32 checksum and the build tool that generates it 2025-03-07 23:59:10 +01:00
string.c x86/boot: Add volatile, clobbers and zero-length test in memcmp() 2026-07-28 16:32:44 -07:00
string.h x86/boot: Get rid of kstrtoull() 2026-05-04 14:26:13 +02:00
tty.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
version.c kbuild: build init/built-in.a just once 2022-09-29 04:40:15 +09:00
vesa.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 48 2019-05-24 17:27:13 +02:00
video-bios.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 2019-06-19 17:09:53 +02:00
video-mode.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 2019-06-19 17:09:53 +02:00
video-vesa.c sysfb: Enable boot time VESA graphic mode selection 2022-03-04 20:55:33 +01:00
video-vga.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 2019-06-19 17:09:53 +02:00
video.c x86/boot: Remove semicolon from "rep" prefixes 2025-04-18 09:32:57 +02:00
video.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00