mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'mm-nonmm-stable-2026-02-12-10-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-MM updates from Andrew Morton: - "ocfs2: give ocfs2 the ability to reclaim suballocator free bg" saves disk space by teaching ocfs2 to reclaim suballocator block group space (Heming Zhao) - "Add ARRAY_END(), and use it to fix off-by-one bugs" adds the ARRAY_END() macro and uses it in various places (Alejandro Colomar) - "vmcoreinfo: support VMCOREINFO_BYTES larger than PAGE_SIZE" makes the vmcore code future-safe, if VMCOREINFO_BYTES ever exceeds the page size (Pnina Feder) - "kallsyms: Prevent invalid access when showing module buildid" cleans up kallsyms code related to module buildid and fixes an invalid access crash when printing backtraces (Petr Mladek) - "Address page fault in ima_restore_measurement_list()" fixes a kexec-related crash that can occur when booting the second-stage kernel on x86 (Harshit Mogalapalli) - "kho: ABI headers and Documentation updates" updates the kexec handover ABI documentation (Mike Rapoport) - "Align atomic storage" adds the __aligned attribute to atomic_t and atomic64_t definitions to get natural alignment of both types on csky, m68k, microblaze, nios2, openrisc and sh (Finn Thain) - "kho: clean up page initialization logic" simplifies the page initialization logic in kho_restore_page() (Pratyush Yadav) - "Unload linux/kernel.h" moves several things out of kernel.h and into more appropriate places (Yury Norov) - "don't abuse task_struct.group_leader" removes the usage of ->group_leader when it is "obviously unnecessary" (Oleg Nesterov) - "list private v2 & luo flb" adds some infrastructure improvements to the live update orchestrator (Pasha Tatashin) * tag 'mm-nonmm-stable-2026-02-12-10-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (107 commits) watchdog/hardlockup: simplify perf event probe and remove per-cpu dependency procfs: fix missing RCU protection when reading real_parent in do_task_stat() watchdog/softlockup: fix sample ring index wrap in need_counting_irqs() kcsan, compiler_types: avoid duplicate type issues in BPF Type Format kho: fix doc for kho_restore_pages() tests/liveupdate: add in-kernel liveupdate test liveupdate: luo_flb: introduce File-Lifecycle-Bound global state liveupdate: luo_file: Use private list list: add kunit test for private list primitives list: add primitives for private list manipulations delayacct: fix uapi timespec64 definition panic: add panic_force_cpu= parameter to redirect panic to a specific CPU netclassid: use thread_group_leader(p) in update_classid_task() RDMA/umem: don't abuse current->group_leader drm/pan*: don't abuse current->group_leader drm/amd: kill the outdated "Only the pthreads threading model is supported" checks drm/amdgpu: don't abuse current->group_leader android/binder: use same_thread_group(proc->tsk, current) in binder_mmap() android/binder: don't abuse current->group_leader kho: skip memoryless NUMA nodes when reserving scratch areas ...
This commit is contained in:
+1
-3
@@ -1,8 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
root = true
|
||||
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,rst,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
@@ -107,22 +107,22 @@ Get sum and peak of delays, since system boot, for all pids with tgid 242::
|
||||
TGID 242
|
||||
|
||||
|
||||
CPU count real total virtual total delay total delay average delay max delay min
|
||||
39 156000000 156576579 2111069 0.054ms 0.212296ms 0.031307ms
|
||||
IO count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
SWAP count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
RECLAIM count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
THRASHING count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
COMPACT count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
WPCOPY count delay total delay average delay max delay min
|
||||
156 11215873 0.072ms 0.207403ms 0.033913ms
|
||||
IRQ count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
CPU count real total virtual total delay total delay average delay max delay min delay max timestamp
|
||||
46 188000000 192348334 4098012 0.089ms 0.429260ms 0.051205ms 2026-01-15T15:06:58
|
||||
IO count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
SWAP count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
RECLAIM count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
THRASHING count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
COMPACT count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
WPCOPY count delay total delay average delay max delay min delay max timestamp
|
||||
182 19413338 0.107ms 0.547353ms 0.022462ms 2026-01-15T15:05:24
|
||||
IRQ count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
|
||||
Get IO accounting for pid 1, it works only with -p::
|
||||
|
||||
|
||||
@@ -4815,6 +4815,21 @@ Kernel parameters
|
||||
panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump
|
||||
on a WARN().
|
||||
|
||||
panic_force_cpu=
|
||||
[KNL,SMP] Force panic handling to execute on a specific CPU.
|
||||
Format: <cpu number>
|
||||
Some platforms require panic handling to occur on a
|
||||
specific CPU for the crash kernel to function correctly.
|
||||
This can be due to firmware limitations, interrupt routing
|
||||
constraints, or platform-specific requirements where only
|
||||
a particular CPU can safely enter the crash kernel.
|
||||
When set, panic() will redirect execution to the specified
|
||||
CPU before proceeding with the normal panic and kexec flow.
|
||||
If the target CPU is offline or unavailable, panic proceeds
|
||||
on the current CPU.
|
||||
This option should only be used for systems with the above
|
||||
constraints as it might cause the panic operation to be less reliable.
|
||||
|
||||
panic_print= Bitmask for printing system info when panic happens.
|
||||
User can chose combination of the following bits:
|
||||
bit 0: print all tasks info
|
||||
@@ -6989,12 +7004,12 @@ Kernel parameters
|
||||
|
||||
softlockup_panic=
|
||||
[KNL] Should the soft-lockup detector generate panics.
|
||||
Format: 0 | 1
|
||||
Format: <int>
|
||||
|
||||
A value of 1 instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup occurs. It is
|
||||
also controlled by the kernel.softlockup_panic sysctl
|
||||
and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
A value of non-zero instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup duration exceeds
|
||||
N thresholds. It is also controlled by the kernel.softlockup_panic
|
||||
sysctl and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
respective build-time switch to that functionality.
|
||||
|
||||
softlockup_all_cpu_backtrace=
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
==================
|
||||
Kexec Handover ABI
|
||||
==================
|
||||
|
||||
Core Kexec Handover ABI
|
||||
========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/kexec_handover.h
|
||||
:doc: Kexec Handover ABI
|
||||
|
||||
vmalloc preservation ABI
|
||||
========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/kexec_handover.h
|
||||
:doc: Kexec Handover ABI for vmalloc Preservation
|
||||
|
||||
memblock preservation ABI
|
||||
=========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/memblock.h
|
||||
:doc: memblock kexec handover ABI
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`/admin-guide/mm/kho`
|
||||
@@ -1,43 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Kexec HandOver (KHO) root tree
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
- Changyuan Lyu <changyuanl@google.com>
|
||||
|
||||
description: |
|
||||
System memory preserved by KHO across kexec.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- kho-v1
|
||||
|
||||
preserved-memory-map:
|
||||
description: |
|
||||
physical address (u64) of an in-memory structure describing all preserved
|
||||
folios and memory ranges.
|
||||
|
||||
patternProperties:
|
||||
"$[0-9a-f_]+^":
|
||||
$ref: sub-fdt.yaml#
|
||||
description: physical address of a KHO user's own FDT.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- preserved-memory-map
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
kho {
|
||||
compatible = "kho-v1";
|
||||
preserved-memory-map = <0xf0be16 0x1000000>;
|
||||
|
||||
memblock {
|
||||
fdt = <0x80cc16 0x1000000>;
|
||||
};
|
||||
};
|
||||
@@ -1,39 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
Memblock can serialize its current memory reservations created with
|
||||
reserve_mem command line option across kexec through KHO.
|
||||
The post-KHO kernel can then consume these reservations and they are
|
||||
guaranteed to have the same physical address.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
patternProperties:
|
||||
"$[0-9a-f_]+^":
|
||||
$ref: reserve-mem.yaml#
|
||||
description: reserved memory regions
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memblock {
|
||||
compatible = "memblock-v1";
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
};
|
||||
@@ -1,40 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory regions
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
Memblock can serialize its current memory reservations created with
|
||||
reserve_mem command line option across kexec through KHO.
|
||||
This object describes each such region.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
start:
|
||||
description: |
|
||||
physical address (u64) of the reserved memory region.
|
||||
|
||||
size:
|
||||
description: |
|
||||
size (u64) of the reserved memory region.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- start
|
||||
- size
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: KHO users' FDT address
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
- Changyuan Lyu <changyuanl@google.com>
|
||||
|
||||
description: |
|
||||
Physical address of an FDT blob registered by a KHO user.
|
||||
|
||||
properties:
|
||||
fdt:
|
||||
description: |
|
||||
physical address (u64) of an FDT blob.
|
||||
|
||||
required:
|
||||
- fdt
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memblock {
|
||||
fdt = <0x80cc16 0x1000000>;
|
||||
};
|
||||
@@ -1,74 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
.. _kho-concepts:
|
||||
|
||||
=======================
|
||||
Kexec Handover Concepts
|
||||
=======================
|
||||
|
||||
Kexec HandOver (KHO) is a mechanism that allows Linux to preserve memory
|
||||
regions, which could contain serialized system states, across kexec.
|
||||
|
||||
It introduces multiple concepts:
|
||||
|
||||
KHO FDT
|
||||
=======
|
||||
|
||||
Every KHO kexec carries a KHO specific flattened device tree (FDT) blob
|
||||
that describes preserved memory regions. These regions contain either
|
||||
serialized subsystem states, or in-memory data that shall not be touched
|
||||
across kexec. After KHO, subsystems can retrieve and restore preserved
|
||||
memory regions from KHO FDT.
|
||||
|
||||
KHO only uses the FDT container format and libfdt library, but does not
|
||||
adhere to the same property semantics that normal device trees do: Properties
|
||||
are passed in native endianness and standardized properties like ``regs`` and
|
||||
``ranges`` do not exist, hence there are no ``#...-cells`` properties.
|
||||
|
||||
KHO is still under development. The FDT schema is unstable and would change
|
||||
in the future.
|
||||
|
||||
Scratch Regions
|
||||
===============
|
||||
|
||||
To boot into kexec, we need to have a physically contiguous memory range that
|
||||
contains no handed over memory. Kexec then places the target kernel and initrd
|
||||
into that region. The new kernel exclusively uses this region for memory
|
||||
allocations before during boot up to the initialization of the page allocator.
|
||||
|
||||
We guarantee that we always have such regions through the scratch regions: On
|
||||
first boot KHO allocates several physically contiguous memory regions. Since
|
||||
after kexec these regions will be used by early memory allocations, there is a
|
||||
scratch region per NUMA node plus a scratch region to satisfy allocations
|
||||
requests that do not require particular NUMA node assignment.
|
||||
By default, size of the scratch region is calculated based on amount of memory
|
||||
allocated during boot. The ``kho_scratch`` kernel command line option may be
|
||||
used to explicitly define size of the scratch regions.
|
||||
The scratch regions are declared as CMA when page allocator is initialized so
|
||||
that their memory can be used during system lifetime. CMA gives us the
|
||||
guarantee that no handover pages land in that region, because handover pages
|
||||
must be at a static physical memory location and CMA enforces that only
|
||||
movable pages can be located inside.
|
||||
|
||||
After KHO kexec, we ignore the ``kho_scratch`` kernel command line option and
|
||||
instead reuse the exact same region that was originally allocated. This allows
|
||||
us to recursively execute any amount of KHO kexecs. Because we used this region
|
||||
for boot memory allocations and as target memory for kexec blobs, some parts
|
||||
of that memory region may be reserved. These reservations are irrelevant for
|
||||
the next KHO, because kexec can overwrite even the original kernel.
|
||||
|
||||
.. _kho-finalization-phase:
|
||||
|
||||
KHO finalization phase
|
||||
======================
|
||||
|
||||
To enable user space based kexec file loader, the kernel needs to be able to
|
||||
provide the FDT that describes the current kernel's state before
|
||||
performing the actual kexec. The process of generating that FDT is
|
||||
called serialization. When the FDT is generated, some properties
|
||||
of the system may become immutable because they are already written down
|
||||
in the FDT. That state is called the KHO finalization phase.
|
||||
|
||||
Public API
|
||||
==========
|
||||
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
|
||||
:export:
|
||||
@@ -1,80 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
=======
|
||||
KHO FDT
|
||||
=======
|
||||
|
||||
KHO uses the flattened device tree (FDT) container format and libfdt
|
||||
library to create and parse the data that is passed between the
|
||||
kernels. The properties in KHO FDT are stored in native format.
|
||||
It includes the physical address of an in-memory structure describing
|
||||
all preserved memory regions, as well as physical addresses of KHO users'
|
||||
own FDTs. Interpreting those sub FDTs is the responsibility of KHO users.
|
||||
|
||||
KHO nodes and properties
|
||||
========================
|
||||
|
||||
Property ``preserved-memory-map``
|
||||
---------------------------------
|
||||
|
||||
KHO saves a special property named ``preserved-memory-map`` under the root node.
|
||||
This node contains the physical address of an in-memory structure for KHO to
|
||||
preserve memory regions across kexec.
|
||||
|
||||
Property ``compatible``
|
||||
-----------------------
|
||||
|
||||
The ``compatible`` property determines compatibility between the kernel
|
||||
that created the KHO FDT and the kernel that attempts to load it.
|
||||
If the kernel that loads the KHO FDT is not compatible with it, the entire
|
||||
KHO process will be bypassed.
|
||||
|
||||
Property ``fdt``
|
||||
----------------
|
||||
|
||||
Generally, a KHO user serialize its state into its own FDT and instructs
|
||||
KHO to preserve the underlying memory, such that after kexec, the new kernel
|
||||
can recover its state from the preserved FDT.
|
||||
|
||||
A KHO user thus can create a node in KHO root tree and save the physical address
|
||||
of its own FDT in that node's property ``fdt`` .
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
The following example demonstrates KHO FDT that preserves two memory
|
||||
regions created with ``reserve_mem`` kernel command line parameter::
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
compatible = "kho-v1";
|
||||
|
||||
preserved-memory-map = <0x40be16 0x1000000>;
|
||||
|
||||
memblock {
|
||||
fdt = <0x1517 0x1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
where the ``memblock`` node contains an FDT that is requested by the
|
||||
subsystem memblock for preservation. The FDT contains the following
|
||||
serialized data::
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
compatible = "memblock-v1";
|
||||
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
|
||||
n2 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc067 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
};
|
||||
@@ -1,11 +1,89 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
.. _kho-concepts:
|
||||
|
||||
========================
|
||||
Kexec Handover Subsystem
|
||||
========================
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Kexec HandOver (KHO) is a mechanism that allows Linux to preserve memory
|
||||
regions, which could contain serialized system states, across kexec.
|
||||
|
||||
KHO uses :ref:`flattened device tree (FDT) <kho_fdt>` to pass information about
|
||||
the preserved state from pre-exec kernel to post-kexec kernel and :ref:`scratch
|
||||
memory regions <kho_scratch>` to ensure integrity of the preserved memory.
|
||||
|
||||
.. _kho_fdt:
|
||||
|
||||
KHO FDT
|
||||
=======
|
||||
Every KHO kexec carries a KHO specific flattened device tree (FDT) blob that
|
||||
describes the preserved state. The FDT includes properties describing preserved
|
||||
memory regions and nodes that hold subsystem specific state.
|
||||
|
||||
The preserved memory regions contain either serialized subsystem states, or
|
||||
in-memory data that shall not be touched across kexec. After KHO, subsystems
|
||||
can retrieve and restore the preserved state from KHO FDT.
|
||||
|
||||
Subsystems participating in KHO can define their own format for state
|
||||
serialization and preservation.
|
||||
|
||||
KHO FDT and structures defined by the subsystems form an ABI between pre-kexec
|
||||
and post-kexec kernels. This ABI is defined by header files in
|
||||
``include/linux/kho/abi`` directory.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
concepts
|
||||
fdt
|
||||
abi.rst
|
||||
|
||||
.. _kho_scratch:
|
||||
|
||||
Scratch Regions
|
||||
===============
|
||||
|
||||
To boot into kexec, we need to have a physically contiguous memory range that
|
||||
contains no handed over memory. Kexec then places the target kernel and initrd
|
||||
into that region. The new kernel exclusively uses this region for memory
|
||||
allocations before during boot up to the initialization of the page allocator.
|
||||
|
||||
We guarantee that we always have such regions through the scratch regions: On
|
||||
first boot KHO allocates several physically contiguous memory regions. Since
|
||||
after kexec these regions will be used by early memory allocations, there is a
|
||||
scratch region per NUMA node plus a scratch region to satisfy allocations
|
||||
requests that do not require particular NUMA node assignment.
|
||||
By default, size of the scratch region is calculated based on amount of memory
|
||||
allocated during boot. The ``kho_scratch`` kernel command line option may be
|
||||
used to explicitly define size of the scratch regions.
|
||||
The scratch regions are declared as CMA when page allocator is initialized so
|
||||
that their memory can be used during system lifetime. CMA gives us the
|
||||
guarantee that no handover pages land in that region, because handover pages
|
||||
must be at a static physical memory location and CMA enforces that only
|
||||
movable pages can be located inside.
|
||||
|
||||
After KHO kexec, we ignore the ``kho_scratch`` kernel command line option and
|
||||
instead reuse the exact same region that was originally allocated. This allows
|
||||
us to recursively execute any amount of KHO kexecs. Because we used this region
|
||||
for boot memory allocations and as target memory for kexec blobs, some parts
|
||||
of that memory region may be reserved. These reservations are irrelevant for
|
||||
the next KHO, because kexec can overwrite even the original kernel.
|
||||
|
||||
.. _kho-finalization-phase:
|
||||
|
||||
KHO finalization phase
|
||||
======================
|
||||
|
||||
To enable user space based kexec file loader, the kernel needs to be able to
|
||||
provide the FDT that describes the current kernel's state before
|
||||
performing the actual kexec. The process of generating that FDT is
|
||||
called serialization. When the FDT is generated, some properties
|
||||
of the system may become immutable because they are already written down
|
||||
in the FDT. That state is called the KHO finalization phase.
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`/admin-guide/mm/kho`
|
||||
|
||||
@@ -774,3 +774,12 @@ Full List API
|
||||
|
||||
.. kernel-doc:: include/linux/list.h
|
||||
:internal:
|
||||
|
||||
Private List API
|
||||
================
|
||||
|
||||
.. kernel-doc:: include/linux/list_private.h
|
||||
:doc: Private List Primitives
|
||||
|
||||
.. kernel-doc:: include/linux/list_private.h
|
||||
:internal:
|
||||
|
||||
@@ -18,6 +18,11 @@ LUO Preserving File Descriptors
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:doc: LUO File Descriptors
|
||||
|
||||
LUO File Lifecycle Bound Global Data
|
||||
====================================
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:doc: LUO File Lifecycle Bound Global Data
|
||||
|
||||
Live Update Orchestrator ABI
|
||||
============================
|
||||
.. kernel-doc:: include/linux/kho/abi/luo.h
|
||||
@@ -40,6 +45,9 @@ Public API
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:export:
|
||||
|
||||
@@ -48,6 +56,9 @@ Internal API
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_session.c
|
||||
:internal:
|
||||
|
||||
@@ -58,4 +69,4 @@ See Also
|
||||
========
|
||||
|
||||
- :doc:`Live Update uAPI </userspace-api/liveupdate>`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
- :doc:`/core-api/kho/index`
|
||||
|
||||
@@ -601,6 +601,11 @@ Commit message
|
||||
|
||||
See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes
|
||||
|
||||
**BAD_COMMIT_SEPARATOR**
|
||||
The commit separator is a single line with 3 dashes.
|
||||
The regex match is '^---$'
|
||||
Lines that start with 3 dashes and have more content on the same line
|
||||
may confuse tools that apply patches.
|
||||
|
||||
Comparison style
|
||||
----------------
|
||||
|
||||
@@ -120,7 +120,7 @@ is equivalent to doing::
|
||||
.store = store_foo,
|
||||
};
|
||||
|
||||
Note as stated in include/linux/kernel.h "OTHER_WRITABLE? Generally
|
||||
Note as stated in include/linux/sysfs.h "OTHER_WRITABLE? Generally
|
||||
considered a bad idea." so trying to set a sysfs file writable for
|
||||
everyone will fail reverting to RO mode for "Others".
|
||||
|
||||
|
||||
@@ -20,4 +20,4 @@ See Also
|
||||
========
|
||||
|
||||
- :doc:`/core-api/liveupdate`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
- :doc:`/core-api/kho/index`
|
||||
|
||||
+5
-3
@@ -14076,6 +14076,7 @@ F: Documentation/admin-guide/mm/kho.rst
|
||||
F: Documentation/core-api/kho/*
|
||||
F: include/linux/kexec_handover.h
|
||||
F: include/linux/kho/
|
||||
F: include/linux/kho/abi/
|
||||
F: kernel/liveupdate/kexec_handover*
|
||||
F: lib/test_kho.c
|
||||
F: tools/testing/selftests/kho/
|
||||
@@ -14768,6 +14769,7 @@ F: include/linux/liveupdate.h
|
||||
F: include/linux/liveupdate/
|
||||
F: include/uapi/linux/liveupdate.h
|
||||
F: kernel/liveupdate/
|
||||
F: lib/tests/liveupdate.c
|
||||
F: mm/memfd_luo.c
|
||||
F: tools/testing/selftests/liveupdate/
|
||||
|
||||
@@ -16520,7 +16522,7 @@ S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git for-next
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
|
||||
F: Documentation/core-api/boot-time-mm.rst
|
||||
F: Documentation/core-api/kho/bindings/memblock/*
|
||||
F: include/linux/kho/abi/memblock.h
|
||||
F: include/linux/memblock.h
|
||||
F: mm/bootmem_info.c
|
||||
F: mm/memblock.c
|
||||
@@ -17591,7 +17593,7 @@ S: Maintained
|
||||
F: Documentation/core-api/min_heap.rst
|
||||
F: include/linux/min_heap.h
|
||||
F: lib/min_heap.c
|
||||
F: lib/test_min_heap.c
|
||||
F: lib/tests/min_heap_kunit.c
|
||||
|
||||
MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
|
||||
M: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||
@@ -27499,7 +27501,7 @@ R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: include/linux/uuid.h
|
||||
F: lib/test_uuid.c
|
||||
F: lib/tests/uuid_kunit.c
|
||||
F: lib/uuid.c
|
||||
|
||||
UV SYSFS DRIVER
|
||||
|
||||
@@ -306,7 +306,7 @@ CONFIG_SCHED_STACK_END_CHECK=y
|
||||
CONFIG_PANIC_ON_OOPS=y
|
||||
CONFIG_PANIC_TIMEOUT=-1
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=1
|
||||
CONFIG_WQ_WATCHDOG=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
||||
@@ -100,7 +100,7 @@ CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_SHIRQ=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_SPINLOCK_SLEEP=y
|
||||
|
||||
@@ -2997,7 +2997,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type old_t,
|
||||
u64 plt_target = 0ULL;
|
||||
bool poking_bpf_entry;
|
||||
|
||||
if (!__bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
if (!bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
/* Only poking bpf text is supported. Since kernel function
|
||||
* entry is set up by ftrace, we reply on ftrace to poke kernel
|
||||
* functions.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user