mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
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
...
This commit is contained in:
@@ -303,6 +303,7 @@ Hans de Goede <hansg@kernel.org> <hdegoede@redhat.com>
|
||||
Hans Verkuil <hverkuil@kernel.org> <hverkuil@xs4all.nl>
|
||||
Hans Verkuil <hverkuil@kernel.org> <hverkuil-cisco@xs4all.nl>
|
||||
Hans Verkuil <hverkuil@kernel.org> <hansverk@cisco.com>
|
||||
Hao Ge <hao.ge@linux.dev> <gehao@kylinos.cn>
|
||||
Harry Yoo <harry.yoo@oracle.com> <42.hyeyoo@gmail.com>
|
||||
Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com>
|
||||
Heiko Carstens <hca@linux.ibm.com> <heiko.carstens@de.ibm.com>
|
||||
@@ -503,9 +504,7 @@ Mark Brown <broonie@sirena.org.uk>
|
||||
Mark Starovoytov <mstarovo@pm.me> <mstarovoitov@marvell.com>
|
||||
Markus Schneider-Pargmann <msp@baylibre.com> <mpa@pengutronix.de>
|
||||
Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
|
||||
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
|
||||
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
|
||||
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
|
||||
Martin Kepplinger-Novakovic <martink@posteo.de> <martin.kepplinger-novakovic@ginzinger.com>
|
||||
Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com> <martyna.szapar-mudlaw@intel.com>
|
||||
Mathieu Othacehe <othacehe@gnu.org> <m.othacehe@gmail.com>
|
||||
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>
|
||||
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
|
||||
WangYuli <wangyuli@aosc.io> <wangyl5933@chinaunicom.cn>
|
||||
WangYuli <wangyuli@aosc.io> <wangyuli@deepin.org>
|
||||
WangYuli <wangyuli@aosc.io> <wangyuli@uniontech.com>
|
||||
Weiwen Hu <huweiwen@linux.alibaba.com> <sehuww@mail.scut.edu.cn>
|
||||
WeiXiong Liao <gmpy.liaowx@gmail.com> <liaoweixiong@allwinnertech.com>
|
||||
Wen Gong <quic_wgong@quicinc.com> <wgong@codeaurora.org>
|
||||
@@ -867,6 +869,7 @@ Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
|
||||
Yanteng Si <si.yanteng@linux.dev> <siyanteng@loongson.cn>
|
||||
Ying Huang <huang.ying.caritas@gmail.com> <ying.huang@intel.com>
|
||||
Yosry Ahmed <yosry.ahmed@linux.dev> <yosryahmed@google.com>
|
||||
Yu-Chun Lin <eleanor.lin@realtek.com> <eleanor15x@gmail.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
Zack Rusin <zack.rusin@broadcom.com> <zackr@vmware.com>
|
||||
Zhu Yanjun <zyjzyj2000@gmail.com> <yanjunz@nvidia.com>
|
||||
|
||||
@@ -2056,16 +2056,15 @@ S: Korte Heul 95
|
||||
S: 1403 ND BUSSUM
|
||||
S: The Netherlands
|
||||
|
||||
N: Martin Kepplinger
|
||||
N: Martin Kepplinger-Novakovic
|
||||
E: martink@posteo.de
|
||||
E: martin.kepplinger@puri.sm
|
||||
W: http://www.martinkepplinger.com
|
||||
P: 4096R/5AB387D3 F208 2B88 0F9E 4239 3468 6E3F 5003 98DF 5AB3 87D3
|
||||
D: mma8452 accelerators iio driver
|
||||
D: pegasus_notetaker input driver
|
||||
D: imx8m media and hi846 sensor driver
|
||||
D: Kernel fixes and cleanups
|
||||
S: Garnisonstraße 26
|
||||
S: 4020 Linz
|
||||
S: Keplerstr. 6
|
||||
S: 4050 Traun
|
||||
S: Austria
|
||||
|
||||
N: Karl Keyte
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
NOTE: all the ABIs listed in this file are deprecated and will be removed after 2028.
|
||||
|
||||
Here are the alternative ABIs:
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| Deprecated | Alternative |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| /sys/kernel/kexec_loaded | /sys/kernel/kexec/loaded |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| /sys/kernel/kexec_crash_loaded | /sys/kernel/kexec/crash_loaded |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| /sys/kernel/kexec_crash_size | /sys/kernel/kexec/crash_size |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| /sys/kernel/crash_elfcorehdr_size | /sys/kernel/kexec/crash_elfcorehdr_size |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
| /sys/kernel/kexec_crash_cma_ranges | /sys/kernel/kexec/crash_cma_ranges |
|
||||
+------------------------------------+-----------------------------------------+
|
||||
|
||||
|
||||
What: /sys/kernel/kexec_loaded
|
||||
Date: Jun 2006
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates whether a new kernel image has been loaded
|
||||
into memory using the kexec system call. It shows 1 if
|
||||
a kexec image is present and ready to boot, or 0 if none
|
||||
is loaded.
|
||||
User: kexec tools, kdump service
|
||||
|
||||
What: /sys/kernel/kexec_crash_loaded
|
||||
Date: Jun 2006
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates whether a crash (kdump) kernel is currently
|
||||
loaded into memory. It shows 1 if a crash kernel has been
|
||||
successfully loaded for panic handling, or 0 if no crash
|
||||
kernel is present.
|
||||
User: Kexec tools, Kdump service
|
||||
|
||||
What: /sys/kernel/kexec_crash_size
|
||||
Date: Dec 2009
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read/write
|
||||
Shows the amount of memory reserved for loading the crash
|
||||
(kdump) kernel. It reports the size, in bytes, of the
|
||||
crash kernel area defined by the crashkernel= parameter.
|
||||
This interface also allows reducing the crashkernel
|
||||
reservation by writing a smaller value, and the reclaimed
|
||||
space is added back to the system RAM.
|
||||
User: Kdump service
|
||||
|
||||
What: /sys/kernel/crash_elfcorehdr_size
|
||||
Date: Aug 2023
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates the preferred size of the memory buffer for the
|
||||
ELF core header used by the crash (kdump) kernel. It defines
|
||||
how much space is needed to hold metadata about the crashed
|
||||
system, including CPU and memory information. This information
|
||||
is used by the user space utility kexec to support updating the
|
||||
in-kernel kdump image during hotplug operations.
|
||||
User: Kexec tools
|
||||
|
||||
What: /sys/kernel/kexec_crash_cma_ranges
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Provides information about the memory ranges reserved from
|
||||
the Contiguous Memory Allocator (CMA) area that are allocated
|
||||
to the crash (kdump) kernel. It lists the start and end physical
|
||||
addresses of CMA regions assigned for crashkernel use.
|
||||
User: kdump service
|
||||
@@ -0,0 +1,61 @@
|
||||
What: /sys/kernel/kexec/*
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description:
|
||||
The /sys/kernel/kexec/* directory contains sysfs files
|
||||
that provide information about the configuration status
|
||||
of kexec and kdump.
|
||||
|
||||
What: /sys/kernel/kexec/loaded
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates whether a new kernel image has been loaded
|
||||
into memory using the kexec system call. It shows 1 if
|
||||
a kexec image is present and ready to boot, or 0 if none
|
||||
is loaded.
|
||||
User: kexec tools, kdump service
|
||||
|
||||
What: /sys/kernel/kexec/crash_loaded
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates whether a crash (kdump) kernel is currently
|
||||
loaded into memory. It shows 1 if a crash kernel has been
|
||||
successfully loaded for panic handling, or 0 if no crash
|
||||
kernel is present.
|
||||
User: Kexec tools, Kdump service
|
||||
|
||||
What: /sys/kernel/kexec/crash_size
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read/write
|
||||
Shows the amount of memory reserved for loading the crash
|
||||
(kdump) kernel. It reports the size, in bytes, of the
|
||||
crash kernel area defined by the crashkernel= parameter.
|
||||
This interface also allows reducing the crashkernel
|
||||
reservation by writing a smaller value, and the reclaimed
|
||||
space is added back to the system RAM.
|
||||
User: Kdump service
|
||||
|
||||
What: /sys/kernel/kexec/crash_elfcorehdr_size
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Indicates the preferred size of the memory buffer for the
|
||||
ELF core header used by the crash (kdump) kernel. It defines
|
||||
how much space is needed to hold metadata about the crashed
|
||||
system, including CPU and memory information. This information
|
||||
is used by the user space utility kexec to support updating the
|
||||
in-kernel kdump image during hotplug operations.
|
||||
User: Kexec tools
|
||||
|
||||
What: /sys/kernel/kexec/crash_cma_ranges
|
||||
Date: Nov 2025
|
||||
Contact: kexec@lists.infradead.org
|
||||
Description: read only
|
||||
Provides information about the memory ranges reserved from
|
||||
the Contiguous Memory Allocator (CMA) area that are allocated
|
||||
to the crash (kdump) kernel. It lists the start and end physical
|
||||
addresses of CMA regions assigned for crashkernel use.
|
||||
User: kdump service
|
||||
@@ -223,12 +223,13 @@ The flags are::
|
||||
f Include the function name
|
||||
s Include the source file name
|
||||
l Include line number
|
||||
d Include call trace
|
||||
|
||||
For ``print_hex_dump_debug()`` and ``print_hex_dump_bytes()``, only
|
||||
the ``p`` flag has meaning, other flags are ignored.
|
||||
|
||||
Note the regexp ``^[-+=][fslmpt_]+$`` matches a flags specification.
|
||||
To clear all flags at once, use ``=_`` or ``-fslmpt``.
|
||||
Note the regexp ``^[-+=][fslmptd_]+$`` matches a flags specification.
|
||||
To clear all flags at once, use ``=_`` or ``-fslmptd``.
|
||||
|
||||
|
||||
Debug messages during Boot Process
|
||||
|
||||
@@ -2114,14 +2114,20 @@ Kernel parameters
|
||||
the added memory block itself do not be affected.
|
||||
|
||||
hung_task_panic=
|
||||
[KNL] Should the hung task detector generate panics.
|
||||
Format: 0 | 1
|
||||
[KNL] Number of hung tasks to trigger kernel panic.
|
||||
Format: <int>
|
||||
|
||||
A value of 1 instructs the kernel to panic when a
|
||||
hung task is detected. The default value is controlled
|
||||
by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time
|
||||
option. The value selected by this boot parameter can
|
||||
be changed later by the kernel.hung_task_panic sysctl.
|
||||
When set to a non-zero value, a kernel panic will be triggered if
|
||||
the number of detected hung tasks reaches this value.
|
||||
|
||||
0: don't panic
|
||||
1: panic immediately on first hung task
|
||||
N: panic after N hung tasks are detected in a single scan
|
||||
|
||||
The default value is controlled by the
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time option. The value
|
||||
selected by this boot parameter can be changed later by the
|
||||
kernel.hung_task_panic sysctl.
|
||||
|
||||
hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC)
|
||||
terminal devices. Valid values: 0..8
|
||||
|
||||
@@ -397,13 +397,14 @@ a hung task is detected.
|
||||
hung_task_panic
|
||||
===============
|
||||
|
||||
Controls the kernel's behavior when a hung task is detected.
|
||||
When set to a non-zero value, a kernel panic will be triggered if the
|
||||
number of hung tasks found during a single scan reaches this value.
|
||||
This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled.
|
||||
|
||||
= =================================================
|
||||
= =======================================================
|
||||
0 Continue operation. This is the default behavior.
|
||||
1 Panic immediately.
|
||||
= =================================================
|
||||
N Panic when N hung tasks are found during a single scan.
|
||||
= =======================================================
|
||||
|
||||
|
||||
hung_task_check_count
|
||||
@@ -421,6 +422,11 @@ the system boot.
|
||||
|
||||
This file shows up if ``CONFIG_DETECT_HUNG_TASK`` is enabled.
|
||||
|
||||
hung_task_sys_info
|
||||
==================
|
||||
A comma separated list of extra system information to be dumped when
|
||||
hung task is detected, for example, "tasks,mem,timers,locks,...".
|
||||
Refer 'panic_sys_info' section below for more details.
|
||||
|
||||
hung_task_timeout_secs
|
||||
======================
|
||||
@@ -515,6 +521,15 @@ default), only processes with the CAP_SYS_ADMIN capability may create
|
||||
io_uring instances.
|
||||
|
||||
|
||||
kernel_sys_info
|
||||
===============
|
||||
A comma separated list of extra system information to be dumped when
|
||||
soft/hard lockup is detected, for example, "tasks,mem,timers,locks,...".
|
||||
Refer 'panic_sys_info' section below for more details.
|
||||
|
||||
It serves as the default kernel control knob, which will take effect
|
||||
when a kernel module calls sys_info() with parameter==0.
|
||||
|
||||
kexec_load_disabled
|
||||
===================
|
||||
|
||||
@@ -576,6 +591,11 @@ if leaking kernel pointer values to unprivileged users is a concern.
|
||||
When ``kptr_restrict`` is set to 2, kernel pointers printed using
|
||||
%pK will be replaced with 0s regardless of privileges.
|
||||
|
||||
softlockup_sys_info & hardlockup_sys_info
|
||||
=========================================
|
||||
A comma separated list of extra system information to be dumped when
|
||||
soft/hard lockup is detected, for example, "tasks,mem,timers,locks,...".
|
||||
Refer 'panic_sys_info' section below for more details.
|
||||
|
||||
modprobe
|
||||
========
|
||||
@@ -910,8 +930,8 @@ to 'panic_print'. Possible values are:
|
||||
============= ===================================================
|
||||
tasks print all tasks info
|
||||
mem print system memory info
|
||||
timer print timers info
|
||||
lock print locks info if CONFIG_LOCKDEP is on
|
||||
timers print timers info
|
||||
locks print locks info if CONFIG_LOCKDEP is on
|
||||
ftrace print ftrace buffer
|
||||
all_bt print all CPUs backtrace (if available in the arch)
|
||||
blocked_tasks print only tasks in uninterruptible (blocked) state
|
||||
|
||||
@@ -138,6 +138,7 @@ Documents that don't fit elsewhere or which have yet to be categorized.
|
||||
:maxdepth: 1
|
||||
|
||||
librs
|
||||
liveupdate
|
||||
netlink
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
========================
|
||||
Live Update Orchestrator
|
||||
========================
|
||||
:Author: Pasha Tatashin <pasha.tatashin@soleen.com>
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:doc: Live Update Orchestrator (LUO)
|
||||
|
||||
LUO Sessions
|
||||
============
|
||||
.. kernel-doc:: kernel/liveupdate/luo_session.c
|
||||
:doc: LUO Sessions
|
||||
|
||||
LUO Preserving File Descriptors
|
||||
===============================
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:doc: LUO File Descriptors
|
||||
|
||||
Live Update Orchestrator ABI
|
||||
============================
|
||||
.. kernel-doc:: include/linux/kho/abi/luo.h
|
||||
:doc: Live Update Orchestrator ABI
|
||||
|
||||
The following types of file descriptors can be preserved
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
../mm/memfd_preservation
|
||||
|
||||
Public API
|
||||
==========
|
||||
.. kernel-doc:: include/linux/liveupdate.h
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/luo.h
|
||||
:functions:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:export:
|
||||
|
||||
Internal API
|
||||
============
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_session.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:internal:
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`Live Update uAPI </userspace-api/liveupdate>`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
@@ -1238,6 +1238,16 @@ Others
|
||||
The patch file does not appear to be in unified-diff format. Please
|
||||
regenerate the patch file before sending it to the maintainer.
|
||||
|
||||
**PLACEHOLDER_USE**
|
||||
Detects unhandled placeholder text left in cover letters or commit headers/logs.
|
||||
Common placeholders include lines like::
|
||||
|
||||
*** SUBJECT HERE ***
|
||||
*** BLURB HERE ***
|
||||
|
||||
These typically come from autogenerated templates. Replace them with a proper
|
||||
subject and description before sending.
|
||||
|
||||
**PRINTF_0XDECIMAL**
|
||||
Prefixing 0x with decimal output is defective and should be corrected.
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
=================================================
|
||||
Recoverable Hardware Error Tracking in vmcoreinfo
|
||||
=================================================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
This feature provides a generic infrastructure within the Linux kernel to track
|
||||
and log recoverable hardware errors. These are hardware recoverable errors
|
||||
visible that might not cause immediate panics but may influence health, mainly
|
||||
because new code path will be executed in the kernel.
|
||||
|
||||
By recording counts and timestamps of recoverable errors into the vmcoreinfo
|
||||
crash dump notes, this infrastructure aids post-mortem crash analysis tools in
|
||||
correlating hardware events with kernel failures. This enables faster triage
|
||||
and better understanding of root causes, especially in large-scale cloud
|
||||
environments where hardware issues are common.
|
||||
|
||||
Benefits
|
||||
--------
|
||||
|
||||
- Facilitates correlation of hardware recoverable errors with kernel panics or
|
||||
unusual code paths that lead to system crashes.
|
||||
- Provides operators and cloud providers quick insights, improving reliability
|
||||
and reducing troubleshooting time.
|
||||
- Complements existing full hardware diagnostics without replacing them.
|
||||
|
||||
Data Exposure and Consumption
|
||||
-----------------------------
|
||||
|
||||
- The tracked error data consists of per-error-type counts and timestamps of
|
||||
last occurrence.
|
||||
- This data is stored in the `hwerror_data` array, categorized by error source
|
||||
types like CPU, memory, PCI, CXL, and others.
|
||||
- It is exposed via vmcoreinfo crash dump notes and can be read using tools
|
||||
like `crash`, `drgn`, or other kernel crash analysis utilities.
|
||||
- There is no other way to read these data other than from crash dumps.
|
||||
- These errors are divided by area, which includes CPU, Memory, PCI, CXL and
|
||||
others.
|
||||
|
||||
Typical usage example (in drgn REPL):
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> prog['hwerror_data']
|
||||
(struct hwerror_info[HWERR_RECOV_MAX]){
|
||||
{
|
||||
.count = (int)844,
|
||||
.timestamp = (time64_t)1752852018,
|
||||
},
|
||||
...
|
||||
}
|
||||
|
||||
Enabling
|
||||
--------
|
||||
|
||||
- This feature is enabled when CONFIG_VMCORE_INFO is set.
|
||||
|
||||
@@ -97,6 +97,7 @@ Subsystem-specific APIs
|
||||
gpio/index
|
||||
hsi
|
||||
hte/index
|
||||
hw-recoverable-errors
|
||||
i2c
|
||||
iio/index
|
||||
infiniband
|
||||
|
||||
@@ -48,6 +48,7 @@ documentation, or deleted if it has served its purpose.
|
||||
hugetlbfs_reserv
|
||||
ksm
|
||||
memory-model
|
||||
memfd_preservation
|
||||
mmu_notifier
|
||||
multigen_lru
|
||||
numa
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
==========================
|
||||
Memfd Preservation via LUO
|
||||
==========================
|
||||
|
||||
.. kernel-doc:: mm/memfd_luo.c
|
||||
:doc: Memfd Preservation via LUO
|
||||
|
||||
Memfd Preservation ABI
|
||||
======================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/memfd.h
|
||||
:doc: DOC: memfd Live Update ABI
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/memfd.h
|
||||
:internal:
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`/core-api/liveupdate`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
@@ -61,6 +61,7 @@ Everything else
|
||||
:maxdepth: 1
|
||||
|
||||
ELF
|
||||
liveupdate
|
||||
netlink/index
|
||||
sysfs-platform_profile
|
||||
vduse
|
||||
|
||||
@@ -385,6 +385,8 @@ Code Seq# Include File Comments
|
||||
0xB8 01-02 uapi/misc/mrvl_cn10k_dpi.h Marvell CN10K DPI driver
|
||||
0xB8 all uapi/linux/mshv.h Microsoft Hyper-V /dev/mshv driver
|
||||
<mailto:linux-hyperv@vger.kernel.org>
|
||||
0xBA 00-0F uapi/linux/liveupdate.h Pasha Tatashin
|
||||
<mailto:pasha.tatashin@soleen.com>
|
||||
0xC0 00-0F linux/usb/iowarrior.h
|
||||
0xCA 00-0F uapi/misc/cxl.h Dead since 6.15
|
||||
0xCA 10-2F uapi/misc/ocxl.h
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
================
|
||||
Live Update uAPI
|
||||
================
|
||||
:Author: Pasha Tatashin <pasha.tatashin@soleen.com>
|
||||
|
||||
ioctl interface
|
||||
===============
|
||||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:doc: LUO ioctl Interface
|
||||
|
||||
ioctl uAPI
|
||||
===========
|
||||
.. kernel-doc:: include/uapi/linux/liveupdate.h
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`Live Update Orchestrator </core-api/liveupdate>`
|
||||
+26
-8
@@ -11659,7 +11659,7 @@ T: git git://linuxtv.org/media.git
|
||||
F: drivers/media/i2c/hi556.c
|
||||
|
||||
HYNIX HI846 SENSOR DRIVER
|
||||
M: Martin Kepplinger <martin.kepplinger@puri.sm>
|
||||
M: Martin Kepplinger-Novakovic <martink@posteo.de>
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/media/i2c/hi846.c
|
||||
@@ -11744,6 +11744,7 @@ HUNG TASK DETECTOR
|
||||
M: Andrew Morton <akpm@linux-foundation.org>
|
||||
R: Lance Yang <lance.yang@linux.dev>
|
||||
R: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
R: Petr Mladek <pmladek@suse.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: include/linux/hung_task.h
|
||||
@@ -13891,14 +13892,15 @@ F: kernel/kexec*
|
||||
KEXEC HANDOVER (KHO)
|
||||
M: Alexander Graf <graf@amazon.com>
|
||||
M: Mike Rapoport <rppt@kernel.org>
|
||||
M: Changyuan Lyu <changyuanl@google.com>
|
||||
M: Pasha Tatashin <pasha.tatashin@soleen.com>
|
||||
R: Pratyush Yadav <pratyush@kernel.org>
|
||||
L: kexec@lists.infradead.org
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: Documentation/admin-guide/mm/kho.rst
|
||||
F: Documentation/core-api/kho/*
|
||||
F: include/linux/kexec_handover.h
|
||||
F: kernel/kexec_handover.c
|
||||
F: kernel/liveupdate/kexec_handover*
|
||||
F: lib/test_kho.c
|
||||
F: tools/testing/selftests/kho/
|
||||
|
||||
@@ -14567,6 +14569,22 @@ F: samples/livepatch/
|
||||
F: scripts/livepatch/
|
||||
F: tools/testing/selftests/livepatch/
|
||||
|
||||
LIVE UPDATE
|
||||
M: Pasha Tatashin <pasha.tatashin@soleen.com>
|
||||
M: Mike Rapoport <rppt@kernel.org>
|
||||
R: Pratyush Yadav <pratyush@kernel.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/core-api/liveupdate.rst
|
||||
F: Documentation/mm/memfd_preservation.rst
|
||||
F: Documentation/userspace-api/liveupdate.rst
|
||||
F: include/linux/liveupdate.h
|
||||
F: include/linux/liveupdate/
|
||||
F: include/uapi/linux/liveupdate.h
|
||||
F: kernel/liveupdate/
|
||||
F: mm/memfd_luo.c
|
||||
F: tools/testing/selftests/liveupdate/
|
||||
|
||||
LLC (802.2)
|
||||
L: netdev@vger.kernel.org
|
||||
S: Odd fixes
|
||||
@@ -15668,7 +15686,7 @@ F: include/media/imx.h
|
||||
MEDIA DRIVERS FOR FREESCALE IMX7/8
|
||||
M: Rui Miguel Silva <rmfrfs@gmail.com>
|
||||
M: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
M: Martin Kepplinger <martin.kepplinger@puri.sm>
|
||||
M: Martin Kepplinger-Novakovic <martink@posteo.de>
|
||||
R: Purism Kernel Team <kernel@puri.sm>
|
||||
R: Frank Li <Frank.Li@nxp.com>
|
||||
L: imx@lists.linux.dev
|
||||
@@ -18420,10 +18438,11 @@ F: net/sunrpc/
|
||||
|
||||
NILFS2 FILESYSTEM
|
||||
M: Ryusuke Konishi <konishi.ryusuke@gmail.com>
|
||||
M: Viacheslav Dubeyko <slava@dubeyko.com>
|
||||
L: linux-nilfs@vger.kernel.org
|
||||
S: Supported
|
||||
S: Maintained
|
||||
W: https://nilfs.sourceforge.io/
|
||||
T: git https://github.com/konis/nilfs2.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vdubeyko/nilfs2.git
|
||||
F: Documentation/filesystems/nilfs2.rst
|
||||
F: fs/nilfs2/
|
||||
F: include/trace/events/nilfs2.h
|
||||
@@ -25103,7 +25122,6 @@ F: drivers/regulator/sy8106a-regulator.c
|
||||
|
||||
SYNC FILE FRAMEWORK
|
||||
M: Sumit Semwal <sumit.semwal@linaro.org>
|
||||
R: Gustavo Padovan <gustavo@padovan.org>
|
||||
L: linux-media@vger.kernel.org
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Maintained
|
||||
@@ -26308,7 +26326,7 @@ M: Jarkko Sakkinen <jarkko@kernel.org>
|
||||
R: Jason Gunthorpe <jgg@ziepe.ca>
|
||||
L: linux-integrity@vger.kernel.org
|
||||
S: Maintained
|
||||
W: https://codeberg.org/jarkko/linux-tpmdd-test
|
||||
W: https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd-test.git/about/
|
||||
Q: https://patchwork.kernel.org/project/linux-integrity/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
|
||||
F: Documentation/devicetree/bindings/tpm/
|
||||
|
||||
+8
-11
@@ -232,17 +232,14 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS
|
||||
config ARCH_USE_BUILTIN_BSWAP
|
||||
bool
|
||||
help
|
||||
Modern versions of GCC (since 4.4) have builtin functions
|
||||
for handling byte-swapping. Using these, instead of the old
|
||||
inline assembler that the architecture code provides in the
|
||||
__arch_bswapXX() macros, allows the compiler to see what's
|
||||
happening and offers more opportunity for optimisation. In
|
||||
particular, the compiler will be able to combine the byteswap
|
||||
with a nearby load or store and use load-and-swap or
|
||||
store-and-swap instructions if the architecture has them. It
|
||||
should almost *never* result in code which is worse than the
|
||||
hand-coded assembler in <asm/swab.h>. But just in case it
|
||||
does, the use of the builtins is optional.
|
||||
GCC and Clang have builtin functions for handling byte-swapping.
|
||||
Using these allows the compiler to see what's happening and
|
||||
offers more opportunity for optimisation. In particular, the
|
||||
compiler will be able to combine the byteswap with a nearby load
|
||||
or store and use load-and-swap or store-and-swap instructions if
|
||||
the architecture has them. It should almost *never* result in code
|
||||
which is worse than the hand-coded assembler in <asm/swab.h>.
|
||||
But just in case it does, the use of the builtins is optional.
|
||||
|
||||
Any architecture with load-and-swap or store-and-swap
|
||||
instructions should set this. And it shouldn't hurt to set it
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user