mirror-linux/arch/arm
Li RongQing e700f5d156 watchdog: softlockup: panic when lockup duration exceeds N thresholds
The softlockup_panic sysctl is currently a binary option: panic
immediately or never panic on soft lockups.

Panicking on any soft lockup, regardless of duration, can be overly
aggressive for brief stalls that may be caused by legitimate operations. 
Conversely, never panicking may allow severe system hangs to persist
undetected.

Extend softlockup_panic to accept an integer threshold, allowing the
kernel to panic only when the normalized lockup duration exceeds N
watchdog threshold periods.  This provides finer-grained control to
distinguish between transient delays and persistent system failures.

The accepted values are:
- 0: Don't panic (unchanged)
- 1: Panic when duration >= 1 * threshold (20s default, original behavior)
- N > 1: Panic when duration >= N * threshold (e.g., 2 = 40s, 3 = 60s.)

The original behavior is preserved for values 0 and 1, maintaining full
backward compatibility while allowing systems to tolerate brief lockups
while still catching severe, persistent hangs.

[lirongqing@baidu.com: v2]
  Link: https://lkml.kernel.org/r/20251218074300.4080-1-lirongqing@baidu.com
Link: https://lkml.kernel.org/r/20251216074521.2796-1-lirongqing@baidu.com
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Cc: Eduard Zingerman <eddyz87@gmail.com>
Cc: Hao Luo <haoluo@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Martin KaFai Lau <martin.lau@linux.dev>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Song Liu <song@kernel.org>
Cc: Stanislav Fomichev <sdf@fomichev.me>
Cc: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2026-01-20 19:44:20 -08:00
..
boot i.MX fixes for 6.19: 2026-01-07 17:49:00 +01:00
common arm: make sa1111_bus_type const 2025-10-22 07:54:54 +02:00
configs watchdog: softlockup: panic when lockup duration exceeds N thresholds 2026-01-20 19:44:20 -08:00
crypto lib/crypto: arm/blake2b: Migrate optimized code into library 2025-10-29 22:04:24 -07:00
include ARM development for 6.19-rc1 2025-12-11 07:50:48 +09:00
kernel ARM development for 6.18-rc1 2025-10-07 16:20:19 -07:00
lib Crypto library updates for 6.17 2025-07-28 17:58:52 -07:00
mach-actions
mach-alpine
mach-artpec
mach-aspeed ARM: aspeed: Don't select SRAM 2025-05-21 23:07:08 +02:00
mach-at91 ARM: soc updates for 6.18 2025-10-01 17:41:15 -07:00
mach-axxia
mach-bcm
mach-berlin
mach-clps711x
mach-davinci ARM: davinci: remove support for da830 2025-04-16 18:02:20 +02:00
mach-digicolor
mach-dove
mach-ep93xx
mach-exynos syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
mach-footbridge
mach-gemini ARM: gemini: fix typos in comments 2025-11-21 22:16:39 +01:00
mach-highbank ARM: Switch to new sys-off handler API 2025-07-04 09:31:17 +02:00
mach-hisi
mach-imx ARM: imx: Kconfig: Adjust select after renamed config option 2025-09-11 10:14:21 +08:00
mach-ixp4xx
mach-keystone
mach-lpc18xx
mach-lpc32xx
mach-mediatek ARM: mediatek: add MT6582 smp bring up code 2025-10-13 11:46:58 +02:00
mach-meson
mach-milbeaut
mach-mmp
mach-mstar
mach-mv78xx0
mach-mvebu
mach-mxs
mach-nomadik
mach-npcm
mach-omap1 ARM: omap1: avoid symbol clashes in fiq handler 2025-12-05 15:25:13 +01:00
mach-omap2 ARM: OMAP2+: Fix falg->flag typo in omap_smc2() 2025-11-04 14:47:46 -08:00
mach-orion5x
mach-pxa syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
mach-qcom
mach-realtek
mach-rockchip ARM: rockchip: remove REGULATOR conditional to PM 2025-09-18 21:05:39 +02:00
mach-rpc
mach-s3c syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
mach-s5pv210 syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
mach-sa1100 treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
mach-shmobile ARM: shmobile: rcar-gen2: Use SZ_256K definition 2025-08-11 16:23:35 +02:00
mach-socfpga
mach-spear
mach-sti ARM: sti: removal of stih415/stih416 related entries 2025-08-18 15:48:00 +02:00
mach-stm32 ARM: stm32: add a new SoC - STM32H747 2025-05-14 10:36:14 +02:00
mach-sunxi
mach-tegra ARM: tegra: Use I/O memcpy to write to IRAM 2025-07-09 14:20:31 +02:00
mach-ux500
mach-versatile soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
mach-vt8500 ARM: Switch to new sys-off handler API 2025-07-04 09:31:17 +02:00
mach-zynq
mm ARM development for 6.19-rc1 2025-12-11 07:50:48 +09:00
net
nwfpe
plat-orion treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
probes uprobes: Add is_register argument to uprobe_write and uprobe_write_opcode 2025-08-21 20:09:19 +02:00
tools arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
vdso stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS 2025-07-21 21:40:57 -07:00
vfp ARM: 9446/1: Disallow kernel mode NEON when IRQs are disabled 2025-05-29 11:22:25 +01:00
xen ARM: Switch to new sys-off handler API 2025-07-04 09:31:17 +02:00
Kbuild
Kconfig ARM development for 6.19-rc1 2025-12-11 07:50:48 +09:00
Kconfig-nommu
Kconfig.debug
Kconfig.platforms ARM: mach-hpe: Rework support and directory structure 2025-09-15 15:07:38 +02:00
Makefile ARM: mach-hpe: Rework support and directory structure 2025-09-15 15:07:38 +02:00