[HowTo] Disable watchdogs (and silence "watchdog did not stop!")

Difficulty: ★★☆☆☆

There is already a pretty good Arch wiki article:
https://wiki.archlinux.org/title/Improving_performance#Watchdogs

Which already does a decent job explaining what it is and why we want to disable it:

As well as a few ways to disable the watchdog(s)

The problem is that this is not at all an exhaustive list of possible watchdog modules.
One appendix that can be useful is found here:
https://www.kernel.org/doc/Documentation/watchdog/watchdog-parameters.txt

But even that does not cover all possible watchdog modules.

So here I will attempt to provide a few steps to find and disable any watchdogs that just “arent like the other modules.”

You will notice there are some common features of watchdog modules - namely titles including some assortment of “TC”, “TCO”, “WD”, or “WDT”, in varying upper and lower cases.

My suggestion would be to query modules, sorting them by those clues:

lsmod | grep -i tc
lsmod | grep -i wd

Some modules may appear self-explanatory, and others less so.

See this example:

$ lsmod | grep wd

snd_hwdep              12288  1 snd_hda_codec
snd                   126976  19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
wdat_wdt               16384  0

In this case wdat_wdt seems a likely candidate.
We can use modinfo to provide more details.

$ modinfo wdat_wdt

filename:       /lib/modules/6.5.4-AMD-znver3/kernel/drivers/watchdog/wdat_wdt.ko.xz
alias:          platform:wdat_wdt
license:        GPL v2
description:    ACPI Hardware Watchdog (WDAT) driver
author:         Mika Westerberg <mika.westerberg@linux.intel.com>
srcversion:     2D87893F9044A672B7B6A81
depends:        
retpoline:      Y
intree:         Y
name:           wdat_wdt
vermagic:       6.5.4-AMD-znver3 SMP preempt mod_unload modversions 
parm:           nowayout:Watchdog cannot be stopped once started (default=0) (bool)
parm:           timeout:Watchdog timeout in seconds (default=30) (int)

The extra information verifies this module as a watchdog, and thus, fit for blacklisting.

/etc/modprobe.d/blacklist-watchdog.conf

# watchdog
blacklist sp5100_tco
# extra watchdog 
blacklist wdat_wdt
8 Likes

At one time (at least on my machine) the wmi* and *wmi modules seemed to override NOWATCHDOG and the blacklisted watchdog modules, and activated some kind of watchdog.

After I blacklisted them as well, haven’t had a watchdog issue.