Re: ichwd and teethless watchdogd

From: Dag-Erling Smørgrav <des_at_des.no>
Date: Sat, 25 Aug 2007 22:47:43 +0200
Harald Schmalzbauer <h.schmalzbauer_at_omnisec.de> writes:
> Here are the relevant lines:
>
> ichwd0: <Intel ICH7 watchdog timer> on isa0
> isab0: found ICH7 or equivalent chipset: Intel ICH7 watchdog timer
> ichwd0: Intel ICH7 watchdog timer (ICH7 or equivalent)
> ichwd0: timer disabled
>
> After watchdogd has started I get this message every second:
> ichwd0: timer reloaded

Looks fine so far.  If you kill or suspend watchdogd, these messages
should stop, and the system should reboot after the timer expires twice
(the first time it expires, the chipset triggers an SMI; the second
time, it resets the CPU).

However, the timeout is probably not what you set it to; due to the
design of the watchdog framework, the timeout you specify is converted
to nanoseconds, the rounded up to the nearest power of two.  The ICH WDT
has a resolution of approximately 0.6 seconds, and the driver rounds
down to that, so the actual timeout value you end up with is one of
0.6s, 1.8s, 4.2s, 8.4s, 16.8s, 34.2s, 68.4s, 137.4s, 274.8s...  The
following C99 code will enumerate the possible values:

	for (int i = 1; i < 64; ++i) {
		uint64_t timeout = 1;
		timeout <<= i;
		timeout /= 600000000LLU;
		timeout *= 600;
		if (timeout > 0)
			printf("%.1fs\n", (double)(timeout / 1000.0));
	}

> I guess the ichwd is hardware disabled by the bios.

No, it isn't; the driver would tell you if that was the case.  Something
else is wrong.

DES
-- 
Dag-Erling Smørgrav - des_at_des.no
Received on Sat Aug 25 2007 - 18:47:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:16 UTC