On Mon, 11.03.13 23:42, Zbigniew Jędrzejewski-Szmek (zbys...@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. > > > > # systemctl daemon-reexec > > # LC_ALL=C journalctl -f > > mars 11 20:50:15 slice systemd[1]: systemd 198 running in system mode. > > (+PAM -LIBWRAP -AUDIT -SELINUX -IMA -S...L +XZ) > > mars 11 20:50:15 slice systemd[1]: Hardware watchdog 'SBC-FITPC2 > > Watchdog', version 0 > > mars 11 20:50:16 slice systemd[1]: Set hardware watchdog to 1min. > > mars 11 20:50:16 slice systemd[1]: Failed to enable hardware watchdog: > > Inappropriate ioctl for device > Hi Sébastien, > thank you for the great bug report. 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. > > So, I thnk this code should be reworked and only do the ioctl at > > interval defined in RuntimeWatchdogSec, firstly because we use too > > many cycle (global speed/power) and > > secondly, because there is no way to trigger a system reset by the > > wathdog in these condition. > > I'm also interogative about calling ioctl (and trying to reopen > > /dev/watchdog) even when the initial setup of the watchdog have > > failed. > > > > I could provide some patches to fix this if you are interested. > Definitely. There are some places in systemd where unexpected failure > results in excessive usage of resources. Patches (preferably two, > for the two separate issues you describe) are always welcome. Well, the ioctl issue above just indicates that the driver sucks, but given how weakly the kernel iface is defined this is generally not a reason not to continue to ping the hw. To me this really appears as if the driver needs some updating, and we shouldn't attempt to tape over that by calling the ioctl less often. I mean, the whole logic of a watchdog is to ping it when we are still alive and well, so that it gets triggered when we aren't. By pinging them in every loop we do this when we are awake anyway, so it's basically free... Lennart -- Lennart Poettering - Red Hat, Inc. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel