[PATCH v2 1/4] sys_info: add helper for callers that handle all_bt
From: Bradley Morgan
Date: Tue Jun 23 2026 - 11:39:14 EST
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 <include@xxxxxxxxx>
---
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