How to set up linux watchdog daemon with Intel 6300esb

ACiD GRiM asked:

I’ve been searching for this on Google for sometime now and I have yet to find proper documentation on how to connect the kernel driver for my 6300esb watchdog timer to /dev/watchdog and ensure that watchdog daemon is keeping it alive.

I am using RHEL compatible Scientific Linux 6.3 in a KVM virtual machine by the way

Below is everything I’ve tried so far:

dmesg|grep 6300
i6300ESB timer: Intel 6300ESB WatchDog Timer Driver v0.04
i6300ESB timer: initialized (0xffffc900008b8000). heartbeat=30 sec (nowayout=0)


ll /dev/watchdog
crw-rw----. 1 root root 10, 130 Sep 22 22:25 /dev/watchdog



#ping           =
#ping           =
#interface      = eth0
file            = /var/log/messages
#change         = 1407

# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
max-load-1      = 24
max-load-5      = 18
max-load-15     = 12

# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
#min-memory     = 1

#repair-binary      = /usr/sbin/repair
#test-binary        = 
#test-timeout       = 

watchdog-device = /dev/watchdog

# Defaults compiled into the binary
#temperature-device =
#max-temperature    = 120

# Defaults compiled into the binary
#admin          = root
interval        = 10
#logtick                = 1

# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime        = yes
priority        = 1

# Check if syslogd is still running by enabling the following line
#pidfile        = /var/run/   

Now maybe I’m not testing it correctly, but I would expecting that stopping the watchdog service would cause the /dev/watchdog to time out after 30 seconds and I should see the host reboot, however this does not happen.

Also, here is my config for the KVM vm

OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit sl6template
or other application using the libvirt API.

<domain type='kvm'>
  <memory unit='KiB'>262144</memory>
  <currentMemory unit='KiB'>262144</currentMemory>
  <vcpu placement='static'>1</vcpu>
    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>
    <boot dev='hd'/>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Westmere</model>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='est'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='ds'/>
    <feature policy='require' name='smx'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='dtes64'/>
    <feature policy='require' name='rdtscp'/>
    <feature policy='require' name='ht'/>
    <feature policy='require' name='dca'/>
    <feature policy='require' name='pbe'/>
    <feature policy='require' name='tm'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='pdpe1gb'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='pclmuldq'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='acpi'/>
    <feature policy='require' name='monitor'/>
    <feature policy='require' name='aes'/>
  <clock offset='utc'/>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/data/vms/sl6template.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    <interface type='bridge'>
      <mac address='52:54:00:44:57:f6'/>
      <source bridge='br0.2'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    <interface type='bridge'>
      <mac address='52:54:00:88:0f:42'/>
      <source bridge='br1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    <serial type='pty'>
      <target port='0'/>
    <console type='pty'>
      <target type='serial' port='0'/>
    <watchdog model='i6300esb' action='reset'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

Any help is appreciated as the most I’ve found are patches to kvm and general softdog documentation or IPMI watchdog answers.

My answer:

The answer to your question was in the watchdog man page.

The watchdog daemon can be stopped without causing a reboot if the device /dev/watchdog is closed correctly, unless your kernel is compiled with the CONFIG_WATCHDOG_NOWAYOUT option enabled.

Since CONFIG_WATCHDOG_NOWAYOUT is not set according to your log message:

i6300ESB timer: initialized (0xffffc900008b8000). heartbeat=30 sec (nowayout=0)

then shutting down the watchdog daemon doesn’t have the result you want. So now you know what to do.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.