The hangcheck-timer driver uses the TSC to catch delays that jiffies does not notice. A timer is set. When the timer fires, it checks whether it was delayed and if that delay exceeds a given margin of error. The hangcheck_tick module paramter takes the timer duration in seconds. The hangcheck_margin parameter defines the margin of error, in seconds. The defaults are 60 seconds for the timer and 180 seconds for the margin of error. IOW, a timer is set for 60 seconds. When the timer fires, the callback checks the actual duration that the timer waited. If the duration exceeds the alloted time and margin (here 60 + 180, or 240 seconds), the machine is restarted. A healthy machine will have the duration match the expected timeout very closely. The hangcheck-delay module is a test module that can cause a delay of the type hangcheck-timer recognizes. Hangcheck-timer is already a part of the Linux 2.5 kernel. This code can be used to build a version for the 2.4 kernel. Joel Becker