Skip to content

Commit 509d3f4

Browse files
committed
Merge tag 'mm-nonmm-stable-2025-12-06-11-14' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-MM updates from Andrew Morton: - "panic: sys_info: Refactor and fix a potential issue" (Andy Shevchenko) fixes a build issue and does some cleanup in ib/sys_info.c - "Implement mul_u64_u64_div_u64_roundup()" (David Laight) enhances the 64-bit math code on behalf of a PWM driver and beefs up the test module for these library functions - "scripts/gdb/symbols: make BPF debug info available to GDB" (Ilya Leoshkevich) makes BPF symbol names, sizes, and line numbers available to the GDB debugger - "Enable hung_task and lockup cases to dump system info on demand" (Feng Tang) adds a sysctl which can be used to cause additional info dumping when the hung-task and lockup detectors fire - "lib/base64: add generic encoder/decoder, migrate users" (Kuan-Wei Chiu) adds a general base64 encoder/decoder to lib/ and migrates several users away from their private implementations - "rbree: inline rb_first() and rb_last()" (Eric Dumazet) makes TCP a little faster - "liveupdate: Rework KHO for in-kernel users" (Pasha Tatashin) reworks the KEXEC Handover interfaces in preparation for Live Update Orchestrator (LUO), and possibly for other future clients - "kho: simplify state machine and enable dynamic updates" (Pasha Tatashin) increases the flexibility of KEXEC Handover. Also preparation for LUO - "Live Update Orchestrator" (Pasha Tatashin) is a major new feature targeted at cloud environments. Quoting the cover letter: This series introduces the Live Update Orchestrator, a kernel subsystem designed to facilitate live kernel updates using a kexec-based reboot. This capability is critical for cloud environments, allowing hypervisors to be updated with minimal downtime for running virtual machines. LUO achieves this by preserving the state of selected resources, such as memory, devices and their dependencies, across the kernel transition. As a key feature, this series includes support for preserving memfd file descriptors, which allows critical in-memory data, such as guest RAM or any other large memory region, to be maintained in RAM across the kexec reboot. Mike Rappaport merits a mention here, for his extensive review and testing work. - "kexec: reorganize kexec and kdump sysfs" (Sourabh Jain) moves the kexec and kdump sysfs entries from /sys/kernel/ to /sys/kernel/kexec/ and adds back-compatibility symlinks which can hopefully be removed one day - "kho: fixes for vmalloc restoration" (Mike Rapoport) fixes a BUG which was being hit during KHO restoration of vmalloc() regions * tag 'mm-nonmm-stable-2025-12-06-11-14' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (139 commits) calibrate: update header inclusion Reinstate "resource: avoid unnecessary lookups in find_next_iomem_res()" vmcoreinfo: track and log recoverable hardware errors kho: fix restoring of contiguous ranges of order-0 pages kho: kho_restore_vmalloc: fix initialization of pages array MAINTAINERS: TPM DEVICE DRIVER: update the W-tag init: replace simple_strtoul with kstrtoul to improve lpj_setup KHO: fix boot failure due to kmemleak access to non-PRESENT pages Documentation/ABI: new kexec and kdump sysfs interface Documentation/ABI: mark old kexec sysfs deprecated kexec: move sysfs entries to /sys/kernel/kexec test_kho: always print restore status kho: free chunks using free_page() instead of kfree() selftests/liveupdate: add kexec test for multiple and empty sessions selftests/liveupdate: add simple kexec-based selftest for LUO selftests/liveupdate: add userspace API selftests docs: add documentation for memfd preservation via LUO mm: memfd_luo: allow preserving memfd liveupdate: luo_file: add private argument to store runtime state mm: shmem: export some functions to internal.h ...
2 parents 09670b8 + aa514a2 commit 509d3f4

439 files changed

Lines changed: 8031 additions & 1801 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.mailmap

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ Hans de Goede <hansg@kernel.org> <hdegoede@redhat.com>
303303
Hans Verkuil <hverkuil@kernel.org> <hverkuil@xs4all.nl>
304304
Hans Verkuil <hverkuil@kernel.org> <hverkuil-cisco@xs4all.nl>
305305
Hans Verkuil <hverkuil@kernel.org> <hansverk@cisco.com>
306+
Hao Ge <hao.ge@linux.dev> <gehao@kylinos.cn>
306307
Harry Yoo <harry.yoo@oracle.com> <42.hyeyoo@gmail.com>
307308
Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com>
308309
Heiko Carstens <hca@linux.ibm.com> <heiko.carstens@de.ibm.com>
@@ -503,9 +504,7 @@ Mark Brown <broonie@sirena.org.uk>
503504
Mark Starovoytov <mstarovo@pm.me> <mstarovoitov@marvell.com>
504505
Markus Schneider-Pargmann <msp@baylibre.com> <mpa@pengutronix.de>
505506
Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
506-
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
507-
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
508-
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
507+
Martin Kepplinger-Novakovic <martink@posteo.de> <martin.kepplinger-novakovic@ginzinger.com>
509508
Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com> <martyna.szapar-mudlaw@intel.com>
510509
Mathieu Othacehe <othacehe@gnu.org> <m.othacehe@gmail.com>
511510
Mat Martineau <martineau@kernel.org> <mathew.j.martineau@linux.intel.com>
@@ -856,6 +855,9 @@ Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
856855
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
857856
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
858857
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
858+
WangYuli <wangyuli@aosc.io> <wangyl5933@chinaunicom.cn>
859+
WangYuli <wangyuli@aosc.io> <wangyuli@deepin.org>
860+
WangYuli <wangyuli@aosc.io> <wangyuli@uniontech.com>
859861
Weiwen Hu <huweiwen@linux.alibaba.com> <sehuww@mail.scut.edu.cn>
860862
WeiXiong Liao <gmpy.liaowx@gmail.com> <liaoweixiong@allwinnertech.com>
861863
Wen Gong <quic_wgong@quicinc.com> <wgong@codeaurora.org>
@@ -867,6 +869,7 @@ Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
867869
Yanteng Si <si.yanteng@linux.dev> <siyanteng@loongson.cn>
868870
Ying Huang <huang.ying.caritas@gmail.com> <ying.huang@intel.com>
869871
Yosry Ahmed <yosry.ahmed@linux.dev> <yosryahmed@google.com>
872+
Yu-Chun Lin <eleanor.lin@realtek.com> <eleanor15x@gmail.com>
870873
Yusuke Goda <goda.yusuke@renesas.com>
871874
Zack Rusin <zack.rusin@broadcom.com> <zackr@vmware.com>
872875
Zhu Yanjun <zyjzyj2000@gmail.com> <yanjunz@nvidia.com>

CREDITS

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2056,16 +2056,15 @@ S: Korte Heul 95
20562056
S: 1403 ND BUSSUM
20572057
S: The Netherlands
20582058

2059-
N: Martin Kepplinger
2059+
N: Martin Kepplinger-Novakovic
20602060
E: martink@posteo.de
2061-
E: martin.kepplinger@puri.sm
2062-
W: http://www.martinkepplinger.com
20632061
P: 4096R/5AB387D3 F208 2B88 0F9E 4239 3468 6E3F 5003 98DF 5AB3 87D3
20642062
D: mma8452 accelerators iio driver
20652063
D: pegasus_notetaker input driver
2064+
D: imx8m media and hi846 sensor driver
20662065
D: Kernel fixes and cleanups
2067-
S: Garnisonstraße 26
2068-
S: 4020 Linz
2066+
S: Keplerstr. 6
2067+
S: 4050 Traun
20692068
S: Austria
20702069

20712070
N: Karl Keyte
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
NOTE: all the ABIs listed in this file are deprecated and will be removed after 2028.
2+
3+
Here are the alternative ABIs:
4+
+------------------------------------+-----------------------------------------+
5+
| Deprecated | Alternative |
6+
+------------------------------------+-----------------------------------------+
7+
| /sys/kernel/kexec_loaded | /sys/kernel/kexec/loaded |
8+
+------------------------------------+-----------------------------------------+
9+
| /sys/kernel/kexec_crash_loaded | /sys/kernel/kexec/crash_loaded |
10+
+------------------------------------+-----------------------------------------+
11+
| /sys/kernel/kexec_crash_size | /sys/kernel/kexec/crash_size |
12+
+------------------------------------+-----------------------------------------+
13+
| /sys/kernel/crash_elfcorehdr_size | /sys/kernel/kexec/crash_elfcorehdr_size |
14+
+------------------------------------+-----------------------------------------+
15+
| /sys/kernel/kexec_crash_cma_ranges | /sys/kernel/kexec/crash_cma_ranges |
16+
+------------------------------------+-----------------------------------------+
17+
18+
19+
What: /sys/kernel/kexec_loaded
20+
Date: Jun 2006
21+
Contact: kexec@lists.infradead.org
22+
Description: read only
23+
Indicates whether a new kernel image has been loaded
24+
into memory using the kexec system call. It shows 1 if
25+
a kexec image is present and ready to boot, or 0 if none
26+
is loaded.
27+
User: kexec tools, kdump service
28+
29+
What: /sys/kernel/kexec_crash_loaded
30+
Date: Jun 2006
31+
Contact: kexec@lists.infradead.org
32+
Description: read only
33+
Indicates whether a crash (kdump) kernel is currently
34+
loaded into memory. It shows 1 if a crash kernel has been
35+
successfully loaded for panic handling, or 0 if no crash
36+
kernel is present.
37+
User: Kexec tools, Kdump service
38+
39+
What: /sys/kernel/kexec_crash_size
40+
Date: Dec 2009
41+
Contact: kexec@lists.infradead.org
42+
Description: read/write
43+
Shows the amount of memory reserved for loading the crash
44+
(kdump) kernel. It reports the size, in bytes, of the
45+
crash kernel area defined by the crashkernel= parameter.
46+
This interface also allows reducing the crashkernel
47+
reservation by writing a smaller value, and the reclaimed
48+
space is added back to the system RAM.
49+
User: Kdump service
50+
51+
What: /sys/kernel/crash_elfcorehdr_size
52+
Date: Aug 2023
53+
Contact: kexec@lists.infradead.org
54+
Description: read only
55+
Indicates the preferred size of the memory buffer for the
56+
ELF core header used by the crash (kdump) kernel. It defines
57+
how much space is needed to hold metadata about the crashed
58+
system, including CPU and memory information. This information
59+
is used by the user space utility kexec to support updating the
60+
in-kernel kdump image during hotplug operations.
61+
User: Kexec tools
62+
63+
What: /sys/kernel/kexec_crash_cma_ranges
64+
Date: Nov 2025
65+
Contact: kexec@lists.infradead.org
66+
Description: read only
67+
Provides information about the memory ranges reserved from
68+
the Contiguous Memory Allocator (CMA) area that are allocated
69+
to the crash (kdump) kernel. It lists the start and end physical
70+
addresses of CMA regions assigned for crashkernel use.
71+
User: kdump service
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
What: /sys/kernel/kexec/*
2+
Date: Nov 2025
3+
Contact: kexec@lists.infradead.org
4+
Description:
5+
The /sys/kernel/kexec/* directory contains sysfs files
6+
that provide information about the configuration status
7+
of kexec and kdump.
8+
9+
What: /sys/kernel/kexec/loaded
10+
Date: Nov 2025
11+
Contact: kexec@lists.infradead.org
12+
Description: read only
13+
Indicates whether a new kernel image has been loaded
14+
into memory using the kexec system call. It shows 1 if
15+
a kexec image is present and ready to boot, or 0 if none
16+
is loaded.
17+
User: kexec tools, kdump service
18+
19+
What: /sys/kernel/kexec/crash_loaded
20+
Date: Nov 2025
21+
Contact: kexec@lists.infradead.org
22+
Description: read only
23+
Indicates whether a crash (kdump) kernel is currently
24+
loaded into memory. It shows 1 if a crash kernel has been
25+
successfully loaded for panic handling, or 0 if no crash
26+
kernel is present.
27+
User: Kexec tools, Kdump service
28+
29+
What: /sys/kernel/kexec/crash_size
30+
Date: Nov 2025
31+
Contact: kexec@lists.infradead.org
32+
Description: read/write
33+
Shows the amount of memory reserved for loading the crash
34+
(kdump) kernel. It reports the size, in bytes, of the
35+
crash kernel area defined by the crashkernel= parameter.
36+
This interface also allows reducing the crashkernel
37+
reservation by writing a smaller value, and the reclaimed
38+
space is added back to the system RAM.
39+
User: Kdump service
40+
41+
What: /sys/kernel/kexec/crash_elfcorehdr_size
42+
Date: Nov 2025
43+
Contact: kexec@lists.infradead.org
44+
Description: read only
45+
Indicates the preferred size of the memory buffer for the
46+
ELF core header used by the crash (kdump) kernel. It defines
47+
how much space is needed to hold metadata about the crashed
48+
system, including CPU and memory information. This information
49+
is used by the user space utility kexec to support updating the
50+
in-kernel kdump image during hotplug operations.
51+
User: Kexec tools
52+
53+
What: /sys/kernel/kexec/crash_cma_ranges
54+
Date: Nov 2025
55+
Contact: kexec@lists.infradead.org
56+
Description: read only
57+
Provides information about the memory ranges reserved from
58+
the Contiguous Memory Allocator (CMA) area that are allocated
59+
to the crash (kdump) kernel. It lists the start and end physical
60+
addresses of CMA regions assigned for crashkernel use.
61+
User: kdump service

Documentation/admin-guide/dynamic-debug-howto.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,13 @@ The flags are::
223223
f Include the function name
224224
s Include the source file name
225225
l Include line number
226+
d Include call trace
226227

227228
For ``print_hex_dump_debug()`` and ``print_hex_dump_bytes()``, only
228229
the ``p`` flag has meaning, other flags are ignored.
229230

230-
Note the regexp ``^[-+=][fslmpt_]+$`` matches a flags specification.
231-
To clear all flags at once, use ``=_`` or ``-fslmpt``.
231+
Note the regexp ``^[-+=][fslmptd_]+$`` matches a flags specification.
232+
To clear all flags at once, use ``=_`` or ``-fslmptd``.
232233

233234

234235
Debug messages during Boot Process

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2114,14 +2114,20 @@ Kernel parameters
21142114
the added memory block itself do not be affected.
21152115

21162116
hung_task_panic=
2117-
[KNL] Should the hung task detector generate panics.
2118-
Format: 0 | 1
2117+
[KNL] Number of hung tasks to trigger kernel panic.
2118+
Format: <int>
2119+
2120+
When set to a non-zero value, a kernel panic will be triggered if
2121+
the number of detected hung tasks reaches this value.
2122+
2123+
0: don't panic
2124+
1: panic immediately on first hung task
2125+
N: panic after N hung tasks are detected in a single scan
21192126

2120-
A value of 1 instructs the kernel to panic when a
2121-
hung task is detected. The default value is controlled
2122-
by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time
2123-
option. The value selected by this boot parameter can
2124-
be changed later by the kernel.hung_task_panic sysctl.
2127+
The default value is controlled by the
2128+
CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time option. The value
2129+
selected by this boot parameter can be changed later by the
2130+
kernel.hung_task_panic sysctl.
21252131

21262132
hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC)
21272133
terminal devices. Valid values: 0..8

Documentation/admin-guide/sysctl/kernel.rst

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,13 +397,14 @@ a hung task is detected.
397397
hung_task_panic
398398
===============
399399

400-
Controls the kernel's behavior when a hung task is detected.
400+
When set to a non-zero value, a kernel panic will be triggered if the
401+
number of hung tasks found during a single scan reaches this value.
401402
This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled.
402403

403-
= =================================================
404+
= =======================================================
404405
0 Continue operation. This is the default behavior.
405-
1 Panic immediately.
406-
= =================================================
406+
N Panic when N hung tasks are found during a single scan.
407+
= =======================================================
407408

408409

409410
hung_task_check_count
@@ -421,6 +422,11 @@ the system boot.
421422

422423
This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled.
423424

425+
hung_task_sys_info
426+
==================
427+
A comma separated list of extra system information to be dumped when
428+
hung task is detected, for example, "tasks,mem,timers,locks,...".
429+
Refer 'panic_sys_info' section below for more details.
424430

425431
hung_task_timeout_secs
426432
======================
@@ -515,6 +521,15 @@ default), only processes with the CAP_SYS_ADMIN capability may create
515521
io_uring instances.
516522

517523

524+
kernel_sys_info
525+
===============
526+
A comma separated list of extra system information to be dumped when
527+
soft/hard lockup is detected, for example, "tasks,mem,timers,locks,...".
528+
Refer 'panic_sys_info' section below for more details.
529+
530+
It serves as the default kernel control knob, which will take effect
531+
when a kernel module calls sys_info() with parameter==0.
532+
518533
kexec_load_disabled
519534
===================
520535

@@ -576,6 +591,11 @@ if leaking kernel pointer values to unprivileged users is a concern.
576591
When ``kptr_restrict`` is set to 2, kernel pointers printed using
577592
%pK will be replaced with 0s regardless of privileges.
578593

594+
softlockup_sys_info & hardlockup_sys_info
595+
=========================================
596+
A comma separated list of extra system information to be dumped when
597+
soft/hard lockup is detected, for example, "tasks,mem,timers,locks,...".
598+
Refer 'panic_sys_info' section below for more details.
579599

580600
modprobe
581601
========
@@ -910,8 +930,8 @@ to 'panic_print'. Possible values are:
910930
============= ===================================================
911931
tasks print all tasks info
912932
mem print system memory info
913-
timer print timers info
914-
lock print locks info if CONFIG_LOCKDEP is on
933+
timers print timers info
934+
locks print locks info if CONFIG_LOCKDEP is on
915935
ftrace print ftrace buffer
916936
all_bt print all CPUs backtrace (if available in the arch)
917937
blocked_tasks print only tasks in uninterruptible (blocked) state

Documentation/core-api/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ Documents that don't fit elsewhere or which have yet to be categorized.
138138
:maxdepth: 1
139139

140140
librs
141+
liveupdate
141142
netlink
142143

143144
.. only:: subproject and html

Documentation/core-api/kho/concepts.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,5 @@ in the FDT. That state is called the KHO finalization phase.
7070

7171
Public API
7272
==========
73-
.. kernel-doc:: kernel/kexec_handover.c
73+
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
7474
:export:
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
========================
4+
Live Update Orchestrator
5+
========================
6+
:Author: Pasha Tatashin <pasha.tatashin@soleen.com>
7+
8+
.. kernel-doc:: kernel/liveupdate/luo_core.c
9+
:doc: Live Update Orchestrator (LUO)
10+
11+
LUO Sessions
12+
============
13+
.. kernel-doc:: kernel/liveupdate/luo_session.c
14+
:doc: LUO Sessions
15+
16+
LUO Preserving File Descriptors
17+
===============================
18+
.. kernel-doc:: kernel/liveupdate/luo_file.c
19+
:doc: LUO File Descriptors
20+
21+
Live Update Orchestrator ABI
22+
============================
23+
.. kernel-doc:: include/linux/kho/abi/luo.h
24+
:doc: Live Update Orchestrator ABI
25+
26+
The following types of file descriptors can be preserved
27+
28+
.. toctree::
29+
:maxdepth: 1
30+
31+
../mm/memfd_preservation
32+
33+
Public API
34+
==========
35+
.. kernel-doc:: include/linux/liveupdate.h
36+
37+
.. kernel-doc:: include/linux/kho/abi/luo.h
38+
:functions:
39+
40+
.. kernel-doc:: kernel/liveupdate/luo_core.c
41+
:export:
42+
43+
.. kernel-doc:: kernel/liveupdate/luo_file.c
44+
:export:
45+
46+
Internal API
47+
============
48+
.. kernel-doc:: kernel/liveupdate/luo_core.c
49+
:internal:
50+
51+
.. kernel-doc:: kernel/liveupdate/luo_session.c
52+
:internal:
53+
54+
.. kernel-doc:: kernel/liveupdate/luo_file.c
55+
:internal:
56+
57+
See Also
58+
========
59+
60+
- :doc:`Live Update uAPI </userspace-api/liveupdate>`
61+
- :doc:`/core-api/kho/concepts`

0 commit comments

Comments
 (0)