Subject: Re: measuring interrupt latency etc.
To: Wolfgang Solfrank <ws@tools.de>
From: Michael L. Hitch <osymh@terra.oscs.montana.edu>
List: tech-kern
Date: 05/03/2000 11:21:14
On Wed, 3 May 2000, Wolfgang Solfrank wrote:

> > > Actually, I'm pretty sure mi_switch() is supposed to be called at
> > > splstatclock().

  It looks to me like it's called at splhigh() from tsleep().

> Hmm, just guessing here, but are you sure that the stack backtrace is
> correct via the interrupt?  On some (most?) architectures getting the
> backtrace right for those is not easy (to say the least).  Just a thought...

  I don't recall the 68k stack backtrace process at the moment, but if
it's using the framepointer information, mi_switch() looks like it would
be the last 'frame' prior to the interrupt.  In the 3 68k ports I looked
at (hp300, amiga, atari), cpu_switch() is defined in locore.s and does
not use the framepointer on entry.  If cpu_switch() doesn't find a
runnable process, it jumps to the idle routine, which executes a stop
instruction with PSL_LOWIPL - which is where I would expect the interrupt
to occur.

--
Michael L. Hitch			mhitch@montana.edu
Computer Consultant
Information Technology Center
Montana State University	Bozeman, MT	USA