Skip to content

Commit e991acf

Browse files
committed
Merge tag 'mm-nonmm-stable-2025-08-03-12-47' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-MM updates from Andrew Morton: "Significant patch series in this pull request: - "squashfs: Remove page->mapping references" (Matthew Wilcox) gets us closer to being able to remove page->mapping - "relayfs: misc changes" (Jason Xing) does some maintenance and minor feature addition work in relayfs - "kdump: crashkernel reservation from CMA" (Jiri Bohac) switches us from static preallocation of the kdump crashkernel's working memory over to dynamic allocation. So the difficulty of a-priori estimation of the second kernel's needs is removed and the first kernel obtains extra memory - "generalize panic_print's dump function to be used by other kernel parts" (Feng Tang) implements some consolidation and rationalization of the various ways in which a failing kernel splats information at the operator * tag 'mm-nonmm-stable-2025-08-03-12-47' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (80 commits) tools/getdelays: add backward compatibility for taskstats version kho: add test for kexec handover delaytop: enhance error logging and add PSI feature description samples: Kconfig: fix spelling mistake "instancess" -> "instances" fat: fix too many log in fat_chain_add() scripts/spelling.txt: add notifer||notifier to spelling.txt xen/xenbus: fix typo "notifer" net: mvneta: fix typo "notifer" drm/xe: fix typo "notifer" cxl: mce: fix typo "notifer" KVM: x86: fix typo "notifer" MAINTAINERS: add maintainers for delaytop ucount: use atomic_long_try_cmpxchg() in atomic_long_inc_below() ucount: fix atomic_long_inc_below() argument type kexec: enable CMA based contiguous allocation stackdepot: make max number of pools boot-time configurable lib/xxhash: remove unused functions init/Kconfig: restore CONFIG_BROKEN help text lib/raid6: update recov_rvv.c zero page usage docs: update docs after introducing delaytop ...
2 parents 3c4a063 + 085dece commit e991acf

File tree

106 files changed

+2885
-600
lines changed

Some content is hidden

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

106 files changed

+2885
-600
lines changed

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ Muchun Song <[email protected]> <[email protected]>
673673
674674
Rudolf Marek <[email protected]>
675675
Rui Saraiva <[email protected]>
676+
676677
Sachin P Sant <[email protected]>
677678
Sai Prakash Ranjan <[email protected]> <[email protected]>
678679

Documentation/accounting/delay-accounting.rst

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,59 @@ Get IO accounting for pid 1, it works only with -p::
131131
linuxrc: read=65536, write=0, cancelled_write=0
132132

133133
The above command can be used with -v to get more debug information.
134+
135+
After the system starts, use `delaytop` to get the system-wide delay information,
136+
which includes system-wide PSI information and Top-N high-latency tasks.
137+
138+
`delaytop` supports sorting by CPU latency in descending order by default,
139+
displays the top 20 high-latency tasks by default, and refreshes the latency
140+
data every 2 seconds by default.
141+
142+
Get PSI information and Top-N tasks delay, since system boot::
143+
144+
bash# ./delaytop
145+
System Pressure Information: (avg10/avg60/avg300/total)
146+
CPU some: 0.0%/ 0.0%/ 0.0%/ 345(ms)
147+
CPU full: 0.0%/ 0.0%/ 0.0%/ 0(ms)
148+
Memory full: 0.0%/ 0.0%/ 0.0%/ 0(ms)
149+
Memory some: 0.0%/ 0.0%/ 0.0%/ 0(ms)
150+
IO full: 0.0%/ 0.0%/ 0.0%/ 65(ms)
151+
IO some: 0.0%/ 0.0%/ 0.0%/ 79(ms)
152+
IRQ full: 0.0%/ 0.0%/ 0.0%/ 0(ms)
153+
Top 20 processes (sorted by CPU delay):
154+
PID TGID COMMAND CPU(ms) IO(ms) SWAP(ms) RCL(ms) THR(ms) CMP(ms) WP(ms) IRQ(ms)
155+
----------------------------------------------------------------------------------------------
156+
161 161 zombie_memcg_re 1.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00
157+
130 130 blkcg_punt_bio 1.37 0.00 0.00 0.00 0.00 0.00 0.00 0.00
158+
444 444 scsi_tmf_0 0.73 0.00 0.00 0.00 0.00 0.00 0.00 0.00
159+
1280 1280 rsyslogd 0.53 0.04 0.00 0.00 0.00 0.00 0.00 0.00
160+
12 12 ksoftirqd/0 0.47 0.00 0.00 0.00 0.00 0.00 0.00 0.00
161+
1277 1277 nbd-server 0.44 0.00 0.00 0.00 0.00 0.00 0.00 0.00
162+
308 308 kworker/2:2-sys 0.41 0.00 0.00 0.00 0.00 0.00 0.00 0.00
163+
55 55 netns 0.36 0.00 0.00 0.00 0.00 0.00 0.00 0.00
164+
1187 1187 acpid 0.31 0.03 0.00 0.00 0.00 0.00 0.00 0.00
165+
6184 6184 kworker/1:2-sys 0.24 0.00 0.00 0.00 0.00 0.00 0.00 0.00
166+
186 186 kaluad 0.24 0.00 0.00 0.00 0.00 0.00 0.00 0.00
167+
18 18 ksoftirqd/1 0.24 0.00 0.00 0.00 0.00 0.00 0.00 0.00
168+
185 185 kmpath_rdacd 0.23 0.00 0.00 0.00 0.00 0.00 0.00 0.00
169+
190 190 kstrp 0.23 0.00 0.00 0.00 0.00 0.00 0.00 0.00
170+
2759 2759 agetty 0.20 0.03 0.00 0.00 0.00 0.00 0.00 0.00
171+
1190 1190 kworker/0:3-sys 0.19 0.00 0.00 0.00 0.00 0.00 0.00 0.00
172+
1272 1272 sshd 0.15 0.04 0.00 0.00 0.00 0.00 0.00 0.00
173+
1156 1156 license 0.15 0.11 0.00 0.00 0.00 0.00 0.00 0.00
174+
134 134 md 0.13 0.00 0.00 0.00 0.00 0.00 0.00 0.00
175+
6142 6142 kworker/3:2-xfs 0.13 0.00 0.00 0.00 0.00 0.00 0.00 0.00
176+
177+
Dynamic interactive interface of delaytop::
178+
179+
# ./delaytop -p pid
180+
Print delayacct stats
181+
182+
# ./delaytop -P num
183+
Display the top N tasks
184+
185+
# ./delaytop -n num
186+
Set delaytop refresh frequency (num times)
187+
188+
# ./delaytop -d secs
189+
Specify refresh interval as secs

Documentation/admin-guide/kdump/kdump.rst

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,27 @@ crashkernel syntax
311311

312312
crashkernel=0,low
313313

314+
4) crashkernel=size,cma
315+
316+
Reserve additional crash kernel memory from CMA. This reservation is
317+
usable by the first system's userspace memory and kernel movable
318+
allocations (memory balloon, zswap). Pages allocated from this memory
319+
range will not be included in the vmcore so this should not be used if
320+
dumping of userspace memory is intended and it has to be expected that
321+
some movable kernel pages may be missing from the dump.
322+
323+
A standard crashkernel reservation, as described above, is still needed
324+
to hold the crash kernel and initrd.
325+
326+
This option increases the risk of a kdump failure: DMA transfers
327+
configured by the first kernel may end up corrupting the second
328+
kernel's memory.
329+
330+
This reservation method is intended for systems that can't afford to
331+
sacrifice enough memory for standard crashkernel reservation and where
332+
less reliable and possibly incomplete kdump is preferable to no kdump at
333+
all.
334+
314335
Boot into System Kernel
315336
-----------------------
316337
1) Update the boot loader (such as grub, yaboot, or lilo) configuration

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,28 @@
994994
0: to disable low allocation.
995995
It will be ignored when crashkernel=X,high is not used
996996
or memory reserved is below 4G.
997+
crashkernel=size[KMG],cma
998+
[KNL, X86] Reserve additional crash kernel memory from
999+
CMA. This reservation is usable by the first system's
1000+
userspace memory and kernel movable allocations (memory
1001+
balloon, zswap). Pages allocated from this memory range
1002+
will not be included in the vmcore so this should not
1003+
be used if dumping of userspace memory is intended and
1004+
it has to be expected that some movable kernel pages
1005+
may be missing from the dump.
1006+
1007+
A standard crashkernel reservation, as described above,
1008+
is still needed to hold the crash kernel and initrd.
1009+
1010+
This option increases the risk of a kdump failure: DMA
1011+
transfers configured by the first kernel may end up
1012+
corrupting the second kernel's memory.
1013+
1014+
This reservation method is intended for systems that
1015+
can't afford to sacrifice enough memory for standard
1016+
crashkernel reservation and where less reliable and
1017+
possibly incomplete kdump is preferable to no kdump at
1018+
all.
9971019

9981020
cryptomgr.notests
9991021
[KNL] Disable crypto self-tests
@@ -4557,14 +4579,33 @@
45574579
bit 2: print timer info
45584580
bit 3: print locks info if CONFIG_LOCKDEP is on
45594581
bit 4: print ftrace buffer
4560-
bit 5: print all printk messages in buffer
4582+
bit 5: replay all messages on consoles at the end of panic
45614583
bit 6: print all CPUs backtrace (if available in the arch)
45624584
bit 7: print only tasks in uninterruptible (blocked) state
45634585
*Be aware* that this option may print a _lot_ of lines,
45644586
so there are risks of losing older messages in the log.
45654587
Use this option carefully, maybe worth to setup a
45664588
bigger log buffer with "log_buf_len" along with this.
45674589

4590+
panic_sys_info= A comma separated list of extra information to be dumped
4591+
on panic.
4592+
Format: val[,val...]
4593+
Where @val can be any of the following:
4594+
4595+
tasks: print all tasks info
4596+
mem: print system memory info
4597+
timers: print timers info
4598+
locks: print locks info if CONFIG_LOCKDEP is on
4599+
ftrace: print ftrace buffer
4600+
all_bt: print all CPUs backtrace (if available in the arch)
4601+
blocked_tasks: print only tasks in uninterruptible (blocked) state
4602+
4603+
This is a human readable alternative to the 'panic_print' option.
4604+
4605+
panic_console_replay
4606+
When panic happens, replay all kernel messages on
4607+
consoles at the end of panic.
4608+
45684609
parkbd.port= [HW] Parallel port number the keyboard adapter is
45694610
connected to, default is 0.
45704611
Format: <parport#>
@@ -7032,6 +7073,11 @@
70327073
consumed by the stack hash table. By default this is set
70337074
to false.
70347075

7076+
stack_depot_max_pools= [KNL,EARLY]
7077+
Specify the maximum number of pools to use for storing
7078+
stack traces. Pools are allocated on-demand up to this
7079+
limit. Default value is 8191 pools.
7080+
70357081
stacktrace [FTRACE]
70367082
Enabled the stack tracer on boot up.
70377083

Documentation/admin-guide/sysctl/kernel.rst

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ bit 1 print system memory info
890890
bit 2 print timer info
891891
bit 3 print locks info if ``CONFIG_LOCKDEP`` is on
892892
bit 4 print ftrace buffer
893-
bit 5 print all printk messages in buffer
893+
bit 5 replay all messages on consoles at the end of panic
894894
bit 6 print all CPUs backtrace (if available in the arch)
895895
bit 7 print only tasks in uninterruptible (blocked) state
896896
===== ============================================
@@ -900,6 +900,24 @@ So for example to print tasks and memory info on panic, user can::
900900
echo 3 > /proc/sys/kernel/panic_print
901901

902902

903+
panic_sys_info
904+
==============
905+
906+
A comma separated list of extra information to be dumped on panic,
907+
for example, "tasks,mem,timers,...". It is a human readable alternative
908+
to 'panic_print'. Possible values are:
909+
910+
============= ===================================================
911+
tasks print all tasks info
912+
mem print system memory info
913+
timer print timers info
914+
lock print locks info if CONFIG_LOCKDEP is on
915+
ftrace print ftrace buffer
916+
all_bt print all CPUs backtrace (if available in the arch)
917+
blocked_tasks print only tasks in uninterruptible (blocked) state
918+
============= ===================================================
919+
920+
903921
panic_on_rcu_stall
904922
==================
905923

MAINTAINERS

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13544,6 +13544,7 @@ F: Documentation/admin-guide/mm/kho.rst
1354413544
F: Documentation/core-api/kho/*
1354513545
F: include/linux/kexec_handover.h
1354613546
F: kernel/kexec_handover.c
13547+
F: tools/testing/selftests/kho/
1354713548

1354813549
KEYS-ENCRYPTED
1354913550
M: Mimi Zohar <[email protected]>
@@ -19741,6 +19742,16 @@ S: Maintained
1974119742
F: include/linux/delayacct.h
1974219743
F: kernel/delayacct.c
1974319744

19745+
TASK DELAY MONITORING TOOLS
19746+
M: Andrew Morton <[email protected]>
19747+
M: Wang Yaxin <[email protected]>
19748+
M: Fan Yu <[email protected]>
19749+
19750+
S: Maintained
19751+
F: Documentation/accounting/delay-accounting.rst
19752+
F: tools/accounting/delaytop.c
19753+
F: tools/accounting/getdelays.c
19754+
1974419755
PERFORMANCE EVENTS SUBSYSTEM
1974519756
M: Peter Zijlstra <[email protected]>
1974619757
M: Ingo Molnar <[email protected]>
@@ -23382,6 +23393,7 @@ F: drivers/md/md*
2338223393
F: drivers/md/raid*
2338323394
F: include/linux/raid/
2338423395
F: include/uapi/linux/raid/
23396+
F: lib/raid6/
2338523397

2338623398
SOLIDRUN CLEARFOG SUPPORT
2338723399
M: Russell King <[email protected]>

arch/alpha/kernel/core_marvel.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <linux/vmalloc.h>
1818
#include <linux/mc146818rtc.h>
1919
#include <linux/rtc.h>
20+
#include <linux/string.h>
2021
#include <linux/module.h>
2122
#include <linux/memblock.h>
2223

@@ -79,10 +80,12 @@ mk_resource_name(int pe, int port, char *str)
7980
{
8081
char tmp[80];
8182
char *name;
82-
83-
sprintf(tmp, "PCI %s PE %d PORT %d", str, pe, port);
84-
name = memblock_alloc_or_panic(strlen(tmp) + 1, SMP_CACHE_BYTES);
85-
strcpy(name, tmp);
83+
size_t sz;
84+
85+
sz = scnprintf(tmp, sizeof(tmp), "PCI %s PE %d PORT %d", str, pe, port);
86+
sz += 1; /* NUL terminator */
87+
name = memblock_alloc_or_panic(sz, SMP_CACHE_BYTES);
88+
strscpy(name, tmp, sz);
8689

8790
return name;
8891
}

arch/arm/kernel/setup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,7 @@ static void __init reserve_crashkernel(void)
10041004
total_mem = get_total_mem();
10051005
ret = parse_crashkernel(boot_command_line, total_mem,
10061006
&crash_size, &crash_base,
1007-
NULL, NULL);
1007+
NULL, NULL, NULL);
10081008
/* invalid value specified or crashkernel=0 */
10091009
if (ret || !crash_size)
10101010
return;

arch/arm64/mm/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static void __init arch_reserve_crashkernel(void)
106106

107107
ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
108108
&crash_size, &crash_base,
109-
&low_size, &high);
109+
&low_size, NULL, &high);
110110
if (ret)
111111
return;
112112

arch/loongarch/kernel/setup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ static void __init arch_reserve_crashkernel(void)
265265
return;
266266

267267
ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
268-
&crash_size, &crash_base, &low_size, &high);
268+
&crash_size, &crash_base, &low_size, NULL, &high);
269269
if (ret)
270270
return;
271271

0 commit comments

Comments
 (0)