Thread (20 messages) 20 messages, 5 authors, 3h ago
HOTtoday

[PATCH v2 1/4] sys_info: add helper for callers that handle all_bt

From: Bradley Morgan <hidden>
Date: 2026-06-23 15:35:31
Also in: lkml, stable
Subsystem: library code, the rest · Maintainers: Andrew Morton, Linus Torvalds

Some callers handle SYS_INFO_ALL_BT themselves before calling sys_info().
Add a helper that strips that bit without turning an all_bt only mask into
a kernel_sys_info fallback.

Signed-off-by: Bradley Morgan <redacted>
---
Changes since v1:
- New patch for the shared helper suggested by Petr.

 include/linux/sys_info.h |  1 +
 lib/sys_info.c           | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
diff --git a/include/linux/sys_info.h b/include/linux/sys_info.h
index a5bc3ea3d44b..87a841ec7b6a 100644
--- a/include/linux/sys_info.h
+++ b/include/linux/sys_info.h
@@ -18,6 +18,7 @@
 #define SYS_INFO_BLOCKED_TASKS		0x00000080
 
 void sys_info(unsigned long si_mask);
+void sys_info_without_all_bt(unsigned long si_mask);
 unsigned long sys_info_parse_param(char *str);
 
 #ifdef CONFIG_SYSCTL
diff --git a/lib/sys_info.c b/lib/sys_info.c
index f32a06ec9ed4..6afd4c697633 100644
--- a/lib/sys_info.c
+++ b/lib/sys_info.c
@@ -164,3 +164,18 @@ void sys_info(unsigned long si_mask)
 {
 	__sys_info(si_mask ? : kernel_si_mask);
 }
+
+void sys_info_without_all_bt(unsigned long si_mask)
+{
+	unsigned long dump_mask = si_mask & ~SYS_INFO_ALL_BT;
+
+	/*
+	 * Do not call sys_info() when the caller context required only
+	 * backtraces from all CPUs. Otherwise sys_info() would fall back
+	 * to the generic kernel_si_mask.
+	 */
+	if (si_mask && !dump_mask)
+		return;
+
+	sys_info(dump_mask);
+}
-- 
2.53.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help