Re: [PATCH 0/8] watchdog: Add support for keepalives triggered by infrastructure

Guenter Roeck
2015-08-05T00:49:25Z

On 08/04/2015 04:43 PM, Pádraig Brady wrote:
> On 04/08/15 03:13, Guenter Roeck wrote:
>> The watchdog infrastructure is currently purely passive, meaning
>> it only passes information from user space to drivers and vice versa.
>>
>> Since watchdog hardware tends to have its own quirks, this can result
>> in quite complex watchdog drivers. A number of scanarios are especially common.
>>
>> - A watchdog is always active and can not be disabled, or can not be disabled
>> once enabled. To support such hardware, watchdog drivers have to implement
>> their own timers and use those timers to trigger watchdog keepalives while
>> the watchdog device is not or not yet opened.
>> - A variant of this is the desire to enable a watchdog as soon as its driver
>> has been instantiated, to protect the system while it is still booting up,
>> but the watchdog daemon is not yet running.
>
> Just mentioning that patting the watchdog in the boot loader
> (by patching grub etc.) can be a more general solution here as it
> avoids hangs if the kernel crashes before it runs the watchdog driver,
> which is especially true if PXE loaded across the net for example.
> Also this tends to be better spaced between boot start and user space loading.
>

I understand. However, that is not always sufficient, and it may not work
well since grub would need to know about the actual watchdog hardware.
Also, there are systems where the time between "watchdog driver instantiated"
and "watchdog daemon started" is just too large for the maximum watchdog
hardware timeout.

The point here is that there _are_ many drivers which implement this
functionality in the driver code. Not counting the drivers I converted as an
exercise, "git grep mod_timer | cut -f1 -d: | sort -u | wc" in drivers/watchdog
suggests that there are 20 more drivers implementing their own heartbeat
management. With that, it just makes sense to move the functionality to
the infrastructure.

Thanks,
Guenter