Jump to a real kstack ASAP during boot
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 26 Oct 2016 23:40:50 +0000 (19:40 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 29 Nov 2016 16:27:40 +0000 (11:27 -0500)
commit2fa134fe267020a322eee3b9378a82671fae314d
tree6674c9a985c6892053f5e3f13a294c3878283c3f
parent12acb2f1d06ec92c9b3015c8776556ac741b65a3
Jump to a real kstack ASAP during boot

We actually were using the bootstack, which was never actually given out
by a memory allocator, for a long time.  Eventually, we'd give it back,
when the kthread code thought it was a spare it needed to free.  This
would confuse the arena allocator, which never gave out the memory in
the first place.

Now, we'll switch to using a kernel stack that was given to us by
get_kstack() right away.  This helps both with the allocator as well as
with whatever safety checks we'll use for the kernel stacks (e.g. guard
pages).  It'd be brutal if we had one unlucky kernel stack that didn't
have the protections we thought all stacks had (or will have, in this
case).

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/kthread.h
kern/src/init.c
kern/src/kthread.c