ia64/xen-unstable

changeset 12654:53795f0a41b1

[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.

Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
author kfraser@localhost.localdomain
date Wed Nov 29 12:16:59 2006 +0000 (2006-11-29)
parents f32abd365ae0
children 07e3f39eaf10 c630278d4193
files linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c	Wed Nov 29 12:04:49 2006 +0000
     1.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c	Wed Nov 29 12:16:59 2006 +0000
     1.3 @@ -710,6 +710,10 @@ irqreturn_t timer_interrupt(int irq, voi
     1.4  					    (cputime_t)delta_cpu);
     1.5  	}
     1.6  
     1.7 +	/* Offlined for more than a few seconds? Avoid lockup warnings. */
     1.8 +	if (stolen > 5*HZ)
     1.9 +		touch_softlockup_watchdog();
    1.10 +
    1.11  	/* Local timer processing (see update_process_times()). */
    1.12  	run_local_timers();
    1.13  	if (rcu_pending(cpu))