[LINUX] Avoid triggering the softlockup BUG when offline for too long.
After being offline for a long time, the softlockup watchdog triggers
a BUG() on our faces. This is expected, as in fact, we spent more than
a fixed 10*HZ amount of time without touching the watchdog.
However, by inspecting the contents of stolen inside timer irq handler,
we can gain awareness of the fact, and do better than that.
This patch fixes it.
Signed-off-by: Glauber de Oliveira Costa <gcosta@xxxxxxxxxx>
--
Glauber de Oliveira Costa
Red Hat Inc.
"Free as in Freedom"
# HG changeset patch
# User gcosta@xxxxxxxxxx
# Date 1164805648 18000
# Node ID 24d24bca629bbd8f37319de34e12202814ccdde1
# Parent 47fcd5f768fef50cba2fc6dbadc7b75de55e88a5
[LINUX] Avoid triggering the softlockup BUG when offline for too long.
After being offline for a long time, the softlockup watchdog triggers
a BUG() on our faces. This is expected, as in fact, we spent more than
a fixed 10*HZ amount of time without touching the watchdog.
However, by inspecting the contents of stolen inside timer irq handler,
we can gain awareness of the fact, and do better than that.
This patch fixes it.
Signed-off-by: Glauber de Oliveira Costa <gcosta@xxxxxxxxxx>
diff -r 47fcd5f768fe -r 24d24bca629b
linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c Fri Nov 17 08:30:43
2006 -0500
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c Wed Nov 29 08:07:28
2006 -0500
@@ -710,6 +710,9 @@ irqreturn_t timer_interrupt(int irq, voi
(cputime_t)delta_cpu);
}
+ if (stolen > 10*HZ)
+ touch_softlockup_watchdog();
+
/* Local timer processing (see update_process_times()). */
run_local_timers();
if (rcu_pending(cpu))
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|