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()?