linux/drivers
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>
History 2026-01-20 19:44:20 -08:00
..
accel accel/amdxdna: Block running under a hypervisor 2025-12-15 13:00:03 -06:00
accessibility treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
acpi ACPI: PM: s2idle: Add module parameter for LPS0 constraints checking 2026-01-13 23:10:25 +01:00
amba soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
android rust_binder: remove spin_lock() in rust_shrink_free_page() 2025-12-29 11:34:16 +01:00
ata ata: libata: Print features also for ATAPI devices 2026-01-13 22:00:02 +09:00
atm kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
auxdisplay kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
base PM: runtime: Do not clear needs_force_resume with enabled runtime PM 2025-12-16 12:58:57 +01:00
bcma bcma: don't register devices disabled in OF 2025-10-20 13:54:15 +02:00
block array_size.h: add ARRAY_END() 2026-01-20 19:44:19 -08:00
bluetooth Bluetooth: btusb: revert use of devm_kzalloc in btusb 2025-12-19 17:23:18 -05:00
bus kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
cache cache: Support cache maintenance for HiSilicon SoC Hydra Home Agent 2025-11-21 18:42:02 +00:00
cdrom cdrom: Call cdrom_mrw_exit from cdrom_release function 2025-07-22 19:10:17 -06:00
cdx cdx: make cdx_bus_type constant 2025-10-22 07:54:33 +02:00
char kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
clk This pull request is entirely SoC clk drivers, not for lack of trying to modify 2025-12-08 09:38:52 +09:00
clocksource soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
comedi kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
connector connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared" 2024-02-13 11:15:44 +01:00
counter counter: 104-quad-8: Fix incorrect return value in IRQ handler 2025-12-22 20:03:23 +09:00
cpufreq cpufreq: dt-platdev: Fix creating device on OPPv1 platforms 2025-12-16 07:59:30 -06:00
cpuidle soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
crypto crypto: qat - fix duplicate restarting msg during AER error 2025-12-29 08:44:14 +08:00
cxl cxl: Check for invalid addresses returned from translation functions on errors 2026-01-13 08:30:40 -07:00
dax drivers/dax: add some missing kerneldoc comment fields for struct dev_dax 2026-01-14 22:16:26 -08:00
dca Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
devfreq PM / devfreq: Fix typo in DFSO_DOWNDIFFERENTIAL macro name 2025-11-26 13:58:59 +09:00
dibs dibs: Remove KMSG_COMPONENT macro 2025-11-27 18:11:43 -08:00
dio dio: Have dio_bus_match() callback take a const * 2024-07-10 15:38:14 +02:00
dma dmaengine: apple-admac: Add "apple,t8103-admac" compatible 2026-01-11 22:12:49 +05:30
dma-buf VFIO updates for v6.19-rc1 2025-12-04 18:42:48 -08:00
dpll tools: ynl-gen: add regeneration comment 2025-11-25 19:20:42 -08:00
edac EDAC/x38: Fix a resource leak in x38_probe1() 2026-01-04 08:35:39 +01:00
eisa drivers: eisa: make eisa_bus_type const 2025-10-22 07:55:00 +02:00
extcon extcon: max14526: depends on I2C to prevent build warning/errors 2025-09-08 15:13:06 +09:00
firewire firewire: nosy: Fix dma_free_coherent() size 2025-12-26 22:04:03 +09:00
firmware kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
fpga fpga: altera-cvp: Use pci_find_vsec_capability() when probing FPGA device 2025-11-10 15:03:13 +08:00
fsi fsi: occ: Update response size to 8kb 2025-10-22 07:55:16 +02:00
fwctl pds_fwctl: Replace kzalloc + copy_from_user with memdup_user in pdsfc_fw_rpc 2025-09-22 10:33:10 -03:00
gnss gnss: ubx: add support for the safeboot gpio 2025-11-20 16:44:04 +01:00
gpib staging: gpib: Clean-up commented-out code 2025-11-26 14:28:19 +01:00
gpio kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
gpu watchdog: softlockup: panic when lockup duration exceeds N thresholds 2026-01-20 19:44:20 -08:00
greybus greybus: gb-beagleplay: Fix timeout handling in bootloader functions 2025-11-26 14:40:59 +01:00
hid kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
hsi HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls 2025-09-05 22:56:59 +02:00
hte treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hv mshv: release mutex on region invalidation failure 2025-12-18 20:00:10 +00:00
hwmon kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
hwspinlock hwspinlock: Remove unused hwspin_lock_get_id() 2025-03-21 17:12:04 -05:00
hwtracing Char/Misc/IIO driver updates for 6.19-rc1 2025-12-06 18:34:24 -08:00
i2c i2c: imx-lpi2c: change to PIO mode in system-wide suspend/resume progress 2026-01-14 12:58:26 +01:00
i3c i3c: adi: Fix confusing cleanup.h syntax 2025-12-12 23:59:39 +01:00
idle intel_idle: Remove unnecessary address-of operators 2025-09-01 17:32:25 +02:00
iio Char/Misc/IIO driver updates for 6.19-rc1 2025-12-06 18:34:24 -08:00
infiniband kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
input kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
interconnect interconnect: qcom: sm6350: enable QoS configuration 2025-11-19 16:03:12 +02:00
iommu iommu/sva: include mmu_notifier.h header 2026-01-14 22:16:25 -08:00
ipack driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
irqchip irqchip/riscv-imsic: Revert "Remove redundant irq_data lookups" 2026-01-13 09:51:46 +01:00
isdn isdn: kcapi: add WQ_PERCPU to alloc_workqueue users 2025-11-10 18:14:20 -08:00
leds soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
macintosh soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
mailbox mailbox: th1520: fix clock imbalance on probe failure 2025-11-28 09:47:44 -06:00
mcb mcb: use sysfs_emit_at() instead of scnprintf() in show functions 2025-07-16 14:17:07 +02:00
md kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
media kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
memory soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
memstick Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
message scsi: message: fusion: Add WQ_PERCPU to alloc_workqueue() users 2025-11-12 21:28:26 -05:00
mfd MFD for v6.19 2025-12-04 15:18:33 -08:00
misc kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
mmc mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig 2025-12-17 14:14:51 +01:00
most most: usb: fix double free on late probe failure 2025-11-09 11:15:20 +09:00
mtd treewide: Update email address 2026-01-11 06:09:11 -10:00
mux mux: mmio: Add suspend and resume support 2025-11-26 15:09:30 +01:00
net kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
nfc nfc: pn533: Fix error code in pn533_acr122_poweron_rdr() 2025-12-11 01:40:00 -08:00
ntb NTB: epf: Add Renesas rcar support 2025-09-22 09:35:21 -04:00
nubus nubus: Make nubus_bus_type static and constant 2024-01-03 13:33:59 +01:00
nvdimm NVDIMM changes for 6.19 2025-12-06 09:32:25 -08:00
nvme kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
nvmem kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
of of: fix reference count leak in of_alias_scan() 2026-01-17 10:20:43 -06:00
opp OPP: Initialize scope-based pointers inline 2025-10-23 11:58:05 +05:30
parisc parisc: Set valid bit in high byte of 64‑bit physical address 2025-12-19 13:56:17 +01:00
parport treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
pci cxl fixes for v6.19-rc6 2026-01-16 13:09:28 -08:00
pcmcia pcmcia: Add error handling for add_interval() in do_validate_mem() 2025-08-16 15:49:58 +02:00
peci Char/Misc/IIO driver updates for 6.19-rc1 2025-12-06 18:34:24 -08:00
perf arm64 updates for 6.19: 2025-12-02 17:03:55 -08:00
phy phy: freescale: imx8m-pcie: assert phy reset during power on 2026-01-14 21:44:39 +05:30
pinctrl pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping 2026-01-01 15:40:56 +01:00
platform kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
pmdomain pmdomain: imx: Fix reference count leak in imx_gpc_probe() 2025-12-29 11:41:09 +01:00
pnp kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
power soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
powercap powercap: intel_rapl: Fix possible recursive lock warning 2025-12-17 17:24:28 +01:00
pps printk changes for 6.19 2025-12-03 12:42:36 -08:00
ps3 powerpc/ps3: Use str_write_read() in ps3stor_read_write_sectors() 2025-09-06 17:01:26 +05:30
ptp kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
pwm pwm: max7360: Populate missing .sizeof_wfhw in max7360_pwm_ops 2026-01-19 18:31:05 +01:00
rapidio drivers: rapidio: make rio_bus_type const 2025-10-22 07:55:02 +02:00
ras EFI updates for v6.19: 2025-12-04 17:10:08 -08:00
regulator regulator: fp9931: fix regulator node pointer 2025-12-24 11:31:29 +00:00
remoteproc remoteproc: qcom_q6v5_wcss: use optional reset for wcss_q6_bcr_reset 2025-11-29 15:20:23 -06:00
resctrl arm_mpam: Use non-atomic bitops when modifying feature bitmap 2026-01-16 12:04:20 +00:00
reset This pull request is entirely SoC clk drivers, not for lack of trying to modify 2025-12-08 09:38:52 +09:00
rpmsg rpmsg: glink: remove duplicate code for rpmsg device remove 2025-11-26 10:16:10 -06:00
rtc RTC for 6.19 2025-12-13 17:09:06 +12:00
s390 kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
sbus Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
scsi kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
sh syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
siox siox: bus-gpio: Remove the use of dev_err_probe() 2025-09-06 15:59:59 +02:00
slimbus Networking changes for 6.19. 2025-12-03 17:24:33 -08:00
soc bitmap updates for v6.19 2025-12-06 09:01:27 -08:00
soundwire soundwire fix for 6.19 2026-01-18 12:29:12 -08:00
spi spi: cadence-quadspi: Prevent indirect read 2025-12-23 15:18:22 +00:00
spmi irqdomain: spmi: Switch to irq_domain_create_tree() 2025-05-21 14:53:17 +02:00
ssb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
staging kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
target kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
tc TC: Fix the wrong format specifier 2024-11-12 15:48:08 +01:00
tee QCOMTEE fixes2 for v6.18 2025-11-21 21:27:20 +01:00
thermal thermal: core: Fix typo and indentation in comments 2025-12-15 12:47:39 +01:00
thunderbolt kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
tty kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
ufs kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
uio treewide: Update email address 2026-01-11 06:09:11 -10:00
usb kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
vdpa Significant patch series in this merge are as follows: 2025-12-05 13:52:43 -08:00
vfio vfio/xe: Fix use-after-free in xe_vfio_pci_alloc_file() 2025-12-28 12:42:46 -07:00
vhost vhost/vsock: improve RCU read sections around vhost_vsock_get() 2025-12-24 08:02:57 -05:00
video fbdev fixes & enhancements for 6.19-rc1: 2025-12-06 15:41:26 -08:00
virt virt: Fix Kconfig warning when selecting TSM without VIRT_DRIVERS 2025-12-04 17:34:16 -08:00
virtio virtio: clean up features qword/dword terms 2025-11-27 02:03:07 -05:00
w1 w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls 2025-11-11 10:55:18 +01:00
watchdog kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
xen ACPI: PCI: IRQ: Fix INTx GSIs signedness 2026-01-05 19:06:40 +01:00
zorro zorro: Remove extra whitespace in macro definitions 2025-09-15 14:30:17 +02:00
Kconfig Staging driver updates for 6.19-rc1 2025-12-06 18:52:00 -08:00
Makefile Staging driver updates for 6.19-rc1 2025-12-06 18:52:00 -08:00