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/syslogd.pid   

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.

  • Why such an old bit of hardware? – Chopper3 Sep 25 '12 at 10:41
  • 1
    It's what's available to the virtual machine from libvirt, the other option is an ib700 which I think is even older. – ACiD GRiM Sep 25 '12 at 11:24
  • Good point, well made :) Hadn't picked that up – Chopper3 Sep 25 '12 at 11:29

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.

| improve this answer | |
  • 3
    Not the direct answer I was looking for since I've already been over the man page. I did, however, think that the nowayout was a countdown parameter rather than a boolean. So with my new understanding loading the module with nowayout=1 and killing the watchdog daemon did the trick. – ACiD GRiM Sep 25 '12 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.