Subject: Re: Kernel profiling - solved? (or where, oh where has nullproc gone?)
To: Michael L. Hitch <mhitch@lightning.oscs.montana.edu>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: port-mips
Date: 02/27/1999 18:43:13
>  So it appears that switch_exit() needs to use a different stack than
>proc0.  It doesn't appear to need a very big one, so allocating USPACE for
>the stack is probably overkill.  Even allocating a single page might be
>more space than actually required, although I'm not certain if more might
>be used in some situations.  The wakeup() in exit2() will force the reaper
>process to run, so switch_exit() will have a runnable process to switch to
>after exit2() returns, so will not be running on the current stack very
>long.  Also, since switch_exit() is called at splhigh, there shouldn't be
>any worries about interrupts using more stack space.

I'd sooner just allocate a static USPACE-sized stack and be done with
it.  You never know when someone else might trip over the same problem.

Or we could re-use half of the same stack for `out of universe' TLB
misses (kernel stack overflows).

What should we do for 1.4?  Revert to using nullproc's kernel stack in
switch_exit()?