mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 10:01:39 -05: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
|
Public API
|
||||||
==========
|
==========
|
||||||
.. kernel-doc:: kernel/kexec_handover.c
|
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
|
||||||
:export:
|
:export:
|
||||||
|
|||||||
@@ -13799,7 +13799,7 @@ S: Maintained
|
|||||||
F: Documentation/admin-guide/mm/kho.rst
|
F: Documentation/admin-guide/mm/kho.rst
|
||||||
F: Documentation/core-api/kho/*
|
F: Documentation/core-api/kho/*
|
||||||
F: include/linux/kexec_handover.h
|
F: include/linux/kexec_handover.h
|
||||||
F: kernel/kexec_handover*
|
F: kernel/liveupdate/kexec_handover*
|
||||||
F: lib/test_kho.c
|
F: lib/test_kho.c
|
||||||
F: tools/testing/selftests/kho/
|
F: tools/testing/selftests/kho/
|
||||||
|
|
||||||
|
|||||||
@@ -2156,6 +2156,8 @@ config TRACEPOINTS
|
|||||||
|
|
||||||
source "kernel/Kconfig.kexec"
|
source "kernel/Kconfig.kexec"
|
||||||
|
|
||||||
|
source "kernel/liveupdate/Kconfig"
|
||||||
|
|
||||||
endmenu # General setup
|
endmenu # General setup
|
||||||
|
|
||||||
source "arch/Kconfig"
|
source "arch/Kconfig"
|
||||||
|
|||||||
@@ -94,40 +94,6 @@ config KEXEC_JUMP
|
|||||||
Jump between original kernel and kexeced kernel and invoke
|
Jump between original kernel and kexeced kernel and invoke
|
||||||
code in physical address mode via KEXEC
|
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
|
config CRASH_DUMP
|
||||||
bool "kernel crash dumps"
|
bool "kernel crash dumps"
|
||||||
default ARCH_DEFAULT_CRASH_DUMP
|
default ARCH_DEFAULT_CRASH_DUMP
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ obj-y += printk/
|
|||||||
obj-y += irq/
|
obj-y += irq/
|
||||||
obj-y += rcu/
|
obj-y += rcu/
|
||||||
obj-y += livepatch/
|
obj-y += livepatch/
|
||||||
|
obj-y += liveupdate/
|
||||||
obj-y += dma/
|
obj-y += dma/
|
||||||
obj-y += entry/
|
obj-y += entry/
|
||||||
obj-y += unwind/
|
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) += kexec.o
|
||||||
obj-$(CONFIG_KEXEC_FILE) += kexec_file.o
|
obj-$(CONFIG_KEXEC_FILE) += kexec_file.o
|
||||||
obj-$(CONFIG_KEXEC_ELF) += kexec_elf.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_BACKTRACE_SELF_TEST) += backtracetest.o
|
||||||
obj-$(CONFIG_COMPAT) += compat.o
|
obj-$(CONFIG_COMPAT) += compat.o
|
||||||
obj-$(CONFIG_CGROUPS) += cgroup/
|
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
|
* KHO is tightly coupled with mm init and needs access to some of mm
|
||||||
* internal APIs.
|
* internal APIs.
|
||||||
*/
|
*/
|
||||||
#include "../mm/internal.h"
|
#include "../../mm/internal.h"
|
||||||
#include "kexec_internal.h"
|
#include "../kexec_internal.h"
|
||||||
#include "kexec_handover_internal.h"
|
#include "kexec_handover_internal.h"
|
||||||
|
|
||||||
#define KHO_FDT_COMPATIBLE "kho-v1"
|
#define KHO_FDT_COMPATIBLE "kho-v1"
|
||||||
Reference in New Issue
Block a user