mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
liveupdate: kho: move to kernel/liveupdate
Move KHO to kernel/liveupdate/ in preparation of placing all Live Update core kernel related files to the same place. [pasha.tatashin@soleen.com: disable the menu when DEFERRED_STRUCT_PAGE_INIT] Link: https://lkml.kernel.org/r/CA+CK2bAvh9Oa2SLfsbJ8zztpEjrgr_hr-uGgF1coy8yoibT39A@mail.gmail.com Link: https://lkml.kernel.org/r/20251101142325.1326536-8-pasha.tatashin@soleen.com Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Cc: Alexander Graf <graf@amazon.com> Cc: Changyuan Lyu <changyuanl@google.com> Cc: Christian Brauner <brauner@kernel.org> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Miguel Ojeda <ojeda@kernel.org> Cc: Pratyush Yadav <pratyush@kernel.org> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Simon Horman <horms@kernel.org> Cc: Tejun Heo <tj@kernel.org> Cc: Zhu Yanjun <yanjun.zhu@linux.dev> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
99cd2ffac6
commit
48a1b2321d
@@ -70,5 +70,5 @@ in the FDT. That state is called the KHO finalization phase.
|
||||
|
||||
Public API
|
||||
==========
|
||||
.. kernel-doc:: kernel/kexec_handover.c
|
||||
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
|
||||
:export:
|
||||
|
||||
@@ -13799,7 +13799,7 @@ S: Maintained
|
||||
F: Documentation/admin-guide/mm/kho.rst
|
||||
F: Documentation/core-api/kho/*
|
||||
F: include/linux/kexec_handover.h
|
||||
F: kernel/kexec_handover*
|
||||
F: kernel/liveupdate/kexec_handover*
|
||||
F: lib/test_kho.c
|
||||
F: tools/testing/selftests/kho/
|
||||
|
||||
|
||||
@@ -2156,6 +2156,8 @@ config TRACEPOINTS
|
||||
|
||||
source "kernel/Kconfig.kexec"
|
||||
|
||||
source "kernel/liveupdate/Kconfig"
|
||||
|
||||
endmenu # General setup
|
||||
|
||||
source "arch/Kconfig"
|
||||
|
||||
@@ -94,40 +94,6 @@ config KEXEC_JUMP
|
||||
Jump between original kernel and kexeced kernel and invoke
|
||||
code in physical address mode via KEXEC
|
||||
|
||||
config KEXEC_HANDOVER
|
||||
bool "kexec handover"
|
||||
depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE
|
||||
depends on !DEFERRED_STRUCT_PAGE_INIT
|
||||
select MEMBLOCK_KHO_SCRATCH
|
||||
select KEXEC_FILE
|
||||
select LIBFDT
|
||||
select CMA
|
||||
help
|
||||
Allow kexec to hand over state across kernels by generating and
|
||||
passing additional metadata to the target kernel. This is useful
|
||||
to keep data or state alive across the kexec. For this to work,
|
||||
both source and target kernels need to have this option enabled.
|
||||
|
||||
config KEXEC_HANDOVER_DEBUG
|
||||
bool "Enable Kexec Handover debug checks"
|
||||
depends on KEXEC_HANDOVER
|
||||
help
|
||||
This option enables extra sanity checks for the Kexec Handover
|
||||
subsystem. Since, KHO performance is crucial in live update
|
||||
scenarios and the extra code might be adding overhead it is
|
||||
only optionally enabled.
|
||||
|
||||
config KEXEC_HANDOVER_DEBUGFS
|
||||
bool "kexec handover debugfs interface"
|
||||
default KEXEC_HANDOVER
|
||||
depends on KEXEC_HANDOVER
|
||||
select DEBUG_FS
|
||||
help
|
||||
Allow to control kexec handover device tree via debugfs
|
||||
interface, i.e. finalize the state or aborting the finalization.
|
||||
Also, enables inspecting the KHO fdt trees with the debugfs binary
|
||||
blobs.
|
||||
|
||||
config CRASH_DUMP
|
||||
bool "kernel crash dumps"
|
||||
default ARCH_DEFAULT_CRASH_DUMP
|
||||
|
||||
@@ -52,6 +52,7 @@ obj-y += printk/
|
||||
obj-y += irq/
|
||||
obj-y += rcu/
|
||||
obj-y += livepatch/
|
||||
obj-y += liveupdate/
|
||||
obj-y += dma/
|
||||
obj-y += entry/
|
||||
obj-y += unwind/
|
||||
@@ -82,9 +83,6 @@ obj-$(CONFIG_CRASH_DUMP_KUNIT_TEST) += crash_core_test.o
|
||||
obj-$(CONFIG_KEXEC) += kexec.o
|
||||
obj-$(CONFIG_KEXEC_FILE) += kexec_file.o
|
||||
obj-$(CONFIG_KEXEC_ELF) += kexec_elf.o
|
||||
obj-$(CONFIG_KEXEC_HANDOVER) += kexec_handover.o
|
||||
obj-$(CONFIG_KEXEC_HANDOVER_DEBUG) += kexec_handover_debug.o
|
||||
obj-$(CONFIG_KEXEC_HANDOVER_DEBUGFS) += kexec_handover_debugfs.o
|
||||
obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
|
||||
obj-$(CONFIG_COMPAT) += compat.o
|
||||
obj-$(CONFIG_CGROUPS) += cgroup/
|
||||
|
||||
40
kernel/liveupdate/Kconfig
Normal file
40
kernel/liveupdate/Kconfig
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
menu "Live Update and Kexec HandOver"
|
||||
depends on !DEFERRED_STRUCT_PAGE_INIT
|
||||
|
||||
config KEXEC_HANDOVER
|
||||
bool "kexec handover"
|
||||
depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE
|
||||
depends on !DEFERRED_STRUCT_PAGE_INIT
|
||||
select MEMBLOCK_KHO_SCRATCH
|
||||
select KEXEC_FILE
|
||||
select LIBFDT
|
||||
select CMA
|
||||
help
|
||||
Allow kexec to hand over state across kernels by generating and
|
||||
passing additional metadata to the target kernel. This is useful
|
||||
to keep data or state alive across the kexec. For this to work,
|
||||
both source and target kernels need to have this option enabled.
|
||||
|
||||
config KEXEC_HANDOVER_DEBUG
|
||||
bool "Enable Kexec Handover debug checks"
|
||||
depends on KEXEC_HANDOVER
|
||||
help
|
||||
This option enables extra sanity checks for the Kexec Handover
|
||||
subsystem. Since, KHO performance is crucial in live update
|
||||
scenarios and the extra code might be adding overhead it is
|
||||
only optionally enabled.
|
||||
|
||||
config KEXEC_HANDOVER_DEBUGFS
|
||||
bool "kexec handover debugfs interface"
|
||||
default KEXEC_HANDOVER
|
||||
depends on KEXEC_HANDOVER
|
||||
select DEBUG_FS
|
||||
help
|
||||
Allow to control kexec handover device tree via debugfs
|
||||
interface, i.e. finalize the state or aborting the finalization.
|
||||
Also, enables inspecting the KHO fdt trees with the debugfs binary
|
||||
blobs.
|
||||
|
||||
endmenu
|
||||
5
kernel/liveupdate/Makefile
Normal file
5
kernel/liveupdate/Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
obj-$(CONFIG_KEXEC_HANDOVER) += kexec_handover.o
|
||||
obj-$(CONFIG_KEXEC_HANDOVER_DEBUG) += kexec_handover_debug.o
|
||||
obj-$(CONFIG_KEXEC_HANDOVER_DEBUGFS) += kexec_handover_debugfs.o
|
||||
@@ -26,8 +26,8 @@
|
||||
* KHO is tightly coupled with mm init and needs access to some of mm
|
||||
* internal APIs.
|
||||
*/
|
||||
#include "../mm/internal.h"
|
||||
#include "kexec_internal.h"
|
||||
#include "../../mm/internal.h"
|
||||
#include "../kexec_internal.h"
|
||||
#include "kexec_handover_internal.h"
|
||||
|
||||
#define KHO_FDT_COMPATIBLE "kho-v1"
|
||||
Reference in New Issue
Block a user