vmrunkernel: remove statically allocated _kernel[]
authorRonald G. Minnich <rminnich@gmail.com>
Thu, 3 Nov 2016 20:05:49 +0000 (13:05 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 4 Nov 2016 13:52:00 +0000 (09:52 -0400)
commitb737350b851cf45cfe67db11f613a258ebf9ecd4
tree7d84bd9c838136b1ab748d464c48a70a3f5db14b
parent067153b69a920f94c0be2e7e07c205b466834fe7
vmrunkernel: remove statically allocated _kernel[]

kernel memory is now dynamically allocated.
It always starts at 16 MiB, a good choice for linux.
It defaults to 1GiB but you can change the size
via -m.

The startup code makes sure that __procinfo.program_end
is < 16 MiB, and that 16 MiB + memsize does not intrude into
BRK_START.

We also don't use MAP_FIXED. Rather, we test after
the mmap that we got the address we want. This
ensures that we got our mapping and that we did
not get it at the expense of unmapping something else.
It's a more conservative test than using MAP_FIXED
and testing for MAP_FAILED.

Tested to booting a linux kernel.

Change-Id: I6dc2c8e729f27c143e38f53a229e84ab145fb051
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tests/vmm/vmrunkernel.c