title: Who is refreshing hardware watchdog in Linux?
body: <p>I have a processor AT91SAM9G20 running a 2.6 kernel. Watchdog is enabled at bootstrap level and configured for 16 seconds. Watchdog mode register can be configured only once.
  When code hangs either in bootstrap, bootloader or kernel, the board reboots. But once kernel comes up even though watchdog is not refreshed in any of the applications, the board is not being reset after 16 seconds, but 15 minutes.</p>
  
  <p>Who is refreshing the watchdog?</p>
  
  <p>In our case, the watchdog should be influenced by applications, so that the board can reset if our application hangs.</p>
  
  <p>These are the running processes:</p>
  
  <pre><code>1 root     init
  2 root     [kthreadd]
  3 root     [ksoftirqd/0]
  4 root     [watchdog/0]
  5 root     [events/0]
  6 root     [khelper]
  63 root     [kblockd/0]
  72 root     [ksuspend_usbd]
  78 root     [khubd]
  85 root     [kmmcd]
  107 root     [pdflush]
  108 root     [pdflush]
  109 root     [kswapd0]
  110 root     [aio/0]
  740 root     [mtdblockd]
  828 root     [rpciod/0]
  982 root     [jffs2_gcd_mtd10]
  1003 root     /sbin/udevd -d
  1145 daemon   portmap
  1158 dbus     dbus-daemon --system
  1178 root     /usr/sbin/ifplugd -i eth0 -fwI -u0 -d5 -l -q
  1190 root     /usr/sbin/ifplugd -i eth1 -fwI -u0 -d5 -l -q
  1221 default  avahi-daemon: running [SP14.local]
  1226 root     /usr/sbin/dropbear
  1246 root     /root/bin/host_app
  1254 root     /root/bin/mini_httpd -c *.cgi -d /root/bin -u root -E /root/bin/
  1256 root     -sh
  1257 root     /sbin/syslogd -n -m 0
  1258 root     /sbin/klogd -n
  1259 root     /usr/bin/tail -f /var/log/messages
  1265 root     ps -e
  </code></pre>
  
  <p>We are using the watchdog for soft lockups available in kernel-2.6.25-ts.at91sam9g20/kernel/softlockup.c</p>