dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/9] panic: introduce panic status function family
@ 2025-08-25  2:29 Jinchao Wang
  2025-08-25  2:29 ` [PATCH v2 1/9] panic: Introduce helper functions for panic state Jinchao Wang
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Jinchao Wang @ 2025-08-25  2:29 UTC (permalink / raw)
  To: Andrew Morton, Baoquan He, Yury Norov, Qianqiang Liu,
	Simona Vetter, Helge Deller, Petr Mladek, Steven Rostedt,
	John Ogness, Sergey Senozhatsky, Vivek Goyal, Dave Young,
	Kees Cook, Tony Luck, Guilherme G. Piccoli, Thomas Zimmermann,
	Ville Syrjälä, Shixiong Ou, Jinchao Wang, Zsolt Kajtar,
	Ingo Molnar, Nam Cao, Jonathan Cameron, Joel Fernandes,
	Joel Granados, Jason Gunthorpe, Sohil Mehta, Feng Tang,
	Sravan Kumar Gundu, Douglas Anderson, Thomas Gleixner,
	Anna Schumaker, Darrick J. Wong, Max Kellermann, Yunhui Cui,
	Tejun Heo, Luo Gengkun, Li Huafei, Thorsten Blum, Yicong Yang,
	linux-fbdev, dri-devel, kexec, linux-hardening, linux-kernel

This series introduces a family of helper functions to manage panic state and
updates existing code to use them.

Before this series, panic state helpers were scattered and inconsistent. For
example, panic_in_progress() was defined in printk/printk.c, not in panic.c or
panic.h. As a result, developers had to look in unexpected places to understand
or re-use panic state logic. Other checks were open- coded, duplicating logic
across panic, crash, and watchdog paths.

The new helpers centralize the functionality in panic.c/panic.h:
  - panic_try_start()
  - panic_reset()
  - panic_in_progress()
  - panic_on_this_cpu()
  - panic_on_other_cpu()

Patches 1–8 add the helpers and convert panic/crash and printk/nbcon code to
use them.

Patch 9 fixes a bug in the watchdog subsystem by skipping checks when a panic
is in progress, avoiding interference with the panic CPU.

Together, this makes panic state handling simpler, more discoverable, and more
robust.

-- 

Changes from v1:

  - The commit messages have been re-formatted based on Baoquan He's suggestions.
  - The panic_in_progress() check has been moved to be the first check in
    watchdog_overflow_callback(), as suggested by Yury Norov.

Link to v1:
https://lore.kernel.org/all/20250820091702.512524-1-wangjinchao600@gmail.com/

Jinchao Wang (9):
  panic: Introduce helper functions for panic state
  fbdev: Use panic_in_progress() helper
  crash_core: use panic_try_start() in crash_kexec()
  panic: use panic_try_start() in nmi_panic()
  panic: use panic_try_start() in vpanic()
  printk/nbcon: use panic_on_this_cpu() helper
  panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu()
  panic/printk: replace other_cpu_in_panic() with panic_on_other_cpu()
  watchdog: skip checks when panic is in progress

 drivers/video/fbdev/core/fbcon.c  |  9 +---
 include/linux/panic.h             |  6 +++
 include/linux/printk.h            |  2 -
 kernel/crash_core.c               | 15 ++-----
 kernel/panic.c                    | 71 +++++++++++++++++++++++++------
 kernel/printk/internal.h          |  1 -
 kernel/printk/nbcon.c             | 14 +++---
 kernel/printk/printk.c            | 37 +++-------------
 kernel/printk/printk_ringbuffer.c |  2 +-
 kernel/watchdog.c                 |  6 +++
 kernel/watchdog_perf.c            |  4 ++
 lib/dump_stack.c                  |  2 +-
 12 files changed, 91 insertions(+), 78 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-08-29  7:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-25  2:29 [PATCH v2 0/9] panic: introduce panic status function family Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 1/9] panic: Introduce helper functions for panic state Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 2/9] fbdev: Use panic_in_progress() helper Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 3/9] crash_core: use panic_try_start() in crash_kexec() Jinchao Wang
2025-08-29  2:30   ` Qianqiang Liu
2025-08-29  4:39     ` Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 4/9] panic: use panic_try_start() in nmi_panic() Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 5/9] panic: use panic_try_start() in vpanic() Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 6/9] printk/nbcon: use panic_on_this_cpu() helper Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 7/9] panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu() Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 8/9] panic/printk: replace other_cpu_in_panic() with panic_on_other_cpu() Jinchao Wang
2025-08-25  2:29 ` [PATCH v2 9/9] watchdog: skip checks when panic is in progress Jinchao Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).