On Mon, Nov 10, 2025 at 01:07:15PM -0500, Pasha Tatashin wrote: > Upcoming LUO requires KHO for its operations, the requirement to place > both KHO=on and liveupdate=on becomes redundant. Set KHO to be enabled > by default.
I though more about this and it seems too much of a change. kho=1 enables scratch areas and that significantly changes how free pages are distributed in the free lists. Let's go with a Kconfig option we discussed of-list: (this is on top of the current mmotm/mm-nonmm-unstable) >From 823299d80aa4f7c16ef6cfd798a19e1dfe1a91ab Mon Sep 17 00:00:00 2001 From: Pasha Tatashin <[email protected]> Date: Fri, 14 Nov 2025 09:27:47 +0200 Subject: [PATCH] kho: Allow KHO to be enabled by default Upcoming LUO requires KHO for its operations, the requirement to place both KHO=on and liveupdate=on becomes reduntant. Let's allow KHO to be enabled by default, and CONFIG_LIVEUPDATE can select this CONFIG. Signed-off-by: Pasha Tatashin <[email protected]> Signed-off-by: Mike Rapoport (Microsoft) <[email protected]> --- kernel/liveupdate/Kconfig | 8 ++++++++ kernel/liveupdate/kexec_handover.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/kernel/liveupdate/Kconfig b/kernel/liveupdate/Kconfig index d7344d347f69..25c9a4d7781f 100644 --- a/kernel/liveupdate/Kconfig +++ b/kernel/liveupdate/Kconfig @@ -63,4 +63,12 @@ config KEXEC_HANDOVER_DEBUGFS Also, enables inspecting the KHO fdt trees with the debugfs binary blobs. +config KEXEC_HANDOVER_ENABLE_DEFAULT + bool "Enable kexec handover by default" + depends on KEXEC_HANDOVER + help + Enable the kexec handover by default. It is equivalent of passing + kho=on via kernel parameter, and can be overwritten to off via + kho=off. + endmenu diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c index 568cd9fe9aca..23a3df297bb3 100644 --- a/kernel/liveupdate/kexec_handover.c +++ b/kernel/liveupdate/kexec_handover.c @@ -51,7 +51,7 @@ union kho_page_info { static_assert(sizeof(union kho_page_info) == sizeof(((struct page *)0)->private)); -static bool kho_enable __ro_after_init = true; +static bool kho_enable __ro_after_init = IS_ENABLED(CONFIG_KEXEC_HANDOVER_ENABLE_DEFAULT); bool kho_is_enabled(void) { -- 2.50.1 -- Sincerely yours, Mike.
