How to set up linux watchdog daemon with Intel 6300esb

来源:互联网 发布:cs1.6参数优化 编辑:程序博客网 时间:2024/06/05 11:03

2down vote favorite
1

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 6300i6300ESB timer: Intel 6300ESB WatchDog Timer Driver v0.04i6300ESB timer: initialized (0xffffc900008b8000). heartbeat=30 sec (nowayout=0)

|

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

|

/etc/watchdog.conf

#ping           = 172.31.14.1#ping           = 172.26.1.255#interface      = eth0file            = /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      = 24max-load-5      = 18max-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          = rootinterval        = 10#logtick                = 1# This greatly decreases the chance that watchdog won't be scheduled before# your machine is really loadedrealtime        = yespriority        = 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

<!--WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:  virsh edit sl6templateor other application using the libvirt API.--><domain type='kvm'>  <name>sl6template</name>  <uuid>960d0ac2-2e6a-5efa-87a3-6bb779e15b6a</uuid>  <memory unit='KiB'>262144</memory>  <currentMemory unit='KiB'>262144</currentMemory>  <vcpu placement='static'>1</vcpu>  <os>    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>    <boot dev='hd'/>  </os>  <features>    <acpi/>    <apic/>    <pae/>  </features>  <cpu mode='custom' match='exact'>    <model fallback='allow'>Westmere</model>    <vendor>Intel</vendor>    <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'/>  </cpu>  <clock offset='utc'/>  <on_poweroff>destroy</on_poweroff>  <on_reboot>restart</on_reboot>  <on_crash>restart</on_crash>  <devices>    <emulator>/usr/libexec/qemu-kvm</emulator>    <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'/>    </disk>    <controller type='usb' index='0'>      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>    </controller>    <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>    <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'/>    </interface>    <serial type='pty'>      <target port='0'/>    </serial>    <console type='pty'>      <target type='serial' port='0'/>    </console>    <watchdog model='i6300esb' action='reset'>      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>    </watchdog>    <memballoon model='virtio'>      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>    </memballoon>  </devices></domain>

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

share|improve this question
 
   
Why such an old bit of hardware? – Chopper3 Sep 25 '12 at 10:41
   
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

1 Answer

activeoldest votes
up vote1 down vote accepted

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.

share|improve this answer
 
1 
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
0 0