[systemd-devel] Hardware watchdog support, slug speed.

Sébastien Luttringer seblu at seblu.net
Mon Mar 11 16:53:46 PDT 2013

On Mon, Mar 11, 2013 at 11:57 PM, Zbigniew Jędrzejewski-Szmek
<zbyszek at in.waw.pl> wrote:
> On Mon, Mar 11, 2013 at 11:46:55PM +0100, Lennart Poettering wrote:
>> On Mon, 11.03.13 23:42, Zbigniew Jędrzejewski-Szmek (zbyszek at in.waw.pl) wrote:
>> >
>> > On Mon, Mar 11, 2013 at 11:11:19PM +0100, Sébastien Luttringer wrote:
>> > > After reexecuting the daemon, I got the following info in the journal.
>> Humm the ioctl() is supposed to be cheap. And it is on all hw I have
>> tested it with. It appears that ob the hw in question it is not so
>> cheap, but that really sounds like a driver issue to me.
> It is definitely not cheap:
> static void wdt_send_data(unsigned char command, unsigned char data)
> {
>         outb(data, DATA_PORT);
>         msleep(200);
>         outb(command, COMMAND_PORT);
>         msleep(100);
> }
Nice ! This explain why it's so sensitive with this hardware. I see
there is others drivers doing this.

rwolf ~/scm/misc/linux/drivers/watchdog $ git grep sleep|cat
pc87413_wdt.c:		pr_info("Watchdog disabled, sleeping again...\n");
pcwd.c:			msleep(500);
sbc8360.c:	msleep_interruptible(100);
sbc8360.c:	msleep_interruptible(100);
sbc8360.c:	msleep_interruptible(100);
sbc_fitpc2_wdt.c:	msleep(200);
sbc_fitpc2_wdt.c:	msleep(100);
smsc37b787_wdt.c:		pr_info("Watchdog disabled, sleeping again...\n");
smsc37b787_wdt.c:	pr_info("Watchdog initialized and sleeping
wm831x_wdt.c:		gpio_set_value_cansleep(driver_data->update_gpio,

I'm not sure ioctl to watchdog API can be considered as nonblocking
and can be used in an event loop calmly.

> Looking at 'git log drivers/watchdog/sbc_fitpc2_wdt.c', this board is
> prone to hanging if not treated very carefully. Hence probably those
> sleeps in there. If is a driver/hardward issue to some extent. The question
> is whether it makes sense to support it.
Honoring the configuration file, allow without effort to support all watchdog.

Sébastien "Seblu" Luttringer
GPG: 0x2072D77A

More information about the systemd-devel mailing list