mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-30 03:57:32 +00:00

Bitmap definition for 'panic_print' is hard to remember and decode. Add 'panic_sys_info='sysctl to take human readable string like "tasks,mem,timers,locks,ftrace,..." and translate it into bitmap. The detailed mapping is: SYS_INFO_TASKS "tasks" SYS_INFO_MEM "mem" SYS_INFO_TIMERS "timers" SYS_INFO_LOCKS "locks" SYS_INFO_FTRACE "ftrace" SYS_INFO_ALL_CPU_BT "all_bt" SYS_INFO_BLOCKED_TASKS "blocked_tasks" [nathan@kernel.org: add __maybe_unused to sys_info_avail] Link: https://lkml.kernel.org/r/20250708-fix-clang-sys_info_avail-warning-v1-1-60d239eacd64@kernel.org Link: https://lkml.kernel.org/r/20250703021004.42328-4-feng.tang@linux.alibaba.com Signed-off-by: Feng Tang <feng.tang@linux.alibaba.com> Suggested-by: Petr Mladek <pmladek@suse.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Lance Yang <lance.yang@linux.dev> Cc: "Paul E . McKenney" <paulmck@kernel.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
29 lines
831 B
C
29 lines
831 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_SYS_INFO_H
|
|
#define _LINUX_SYS_INFO_H
|
|
|
|
#include <linux/sysctl.h>
|
|
|
|
/*
|
|
* SYS_INFO_PANIC_CONSOLE_REPLAY is for panic case only, as it needs special
|
|
* handling which only fits panic case.
|
|
*/
|
|
#define SYS_INFO_TASKS 0x00000001
|
|
#define SYS_INFO_MEM 0x00000002
|
|
#define SYS_INFO_TIMERS 0x00000004
|
|
#define SYS_INFO_LOCKS 0x00000008
|
|
#define SYS_INFO_FTRACE 0x00000010
|
|
#define SYS_INFO_PANIC_CONSOLE_REPLAY 0x00000020
|
|
#define SYS_INFO_ALL_CPU_BT 0x00000040
|
|
#define SYS_INFO_BLOCKED_TASKS 0x00000080
|
|
|
|
void sys_info(unsigned long si_mask);
|
|
unsigned long sys_info_parse_param(char *str);
|
|
|
|
#ifdef CONFIG_SYSCTL
|
|
int sysctl_sys_info_handler(const struct ctl_table *ro_table, int write,
|
|
void *buffer, size_t *lenp,
|
|
loff_t *ppos);
|
|
#endif
|
|
#endif /* _LINUX_SYS_INFO_H */
|