Subject: Proposed code to reboot the system (Re: SS20 random hanging)
To: None <>
From: Laurent FAILLIE <>
List: port-sparc
Date: 05/23/2007 16:22:17
Hi all,

So, I did some search in the kernel source, especially
in sparc/sparc/auxreg.c which seems to contains BLINK
My idea is to trigger a reboot if the load is too
high, by changing blink()function as bellow :

static void
	void *zero;
	register int s;

	s = splhigh();

        /* Reboot if the load average is too high,
         * symptom of an hanging.
        if(averunnable.ldavg[0] > 10)
            reboot( 0, NULL);

	 * Blink rate is:
	 *	full cycle every second if completely idle (loadav
= 0)
	 *	full cycle every 2 seconds if loadav = 1
	 *	full cycle every 3 seconds if loadav = 2
	 * etc.

	s = (((averunnable.ldavg[0] + FSCALE) * hz) >>
(FSHIFT + 1));
	callout_reset(&blink_ch, s, blink, NULL);

I'll not try to sync the disk because the system is
totally unstable and I'm not sure a sync() can

I'll really appreciate to have any comment on this

Thanks & regards,


PS: it's only a workaround, when I'll be on holliday,
I'll run a ddb enabler kernel and trying to generate a
dump when the machine is hanging.

The misspelling master is on the Web.
   _________	100 % Dictionnary Free !
  /        /(
 /  Dico  / /	Pleins d'autres fautes sur
/________/ /	
(#######( /
Quoi, des fautes d'orthographe! Pas possible ;-D.

Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses