vmm: Only map as much data as you read in.
authorRonald G. Minnich <rminnich@gmail.com>
Wed, 8 Jun 2016 22:01:57 +0000 (15:01 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 9 Jun 2016 02:29:44 +0000 (22:29 -0400)
commite518d512457c488b98fc25f55fab09249c5f2813
tree8d6bc10aac512c48d7d7c76f15437b107c26a21a
parentf20c5dfae2e16f1b1b64709a8c47c82ba23b7e7c
vmm: Only map as much data as you read in.

The current vmrunkernel sets up 1 Gbyte of 2M pages.
It is best if we can start the kernel with the minimum amount
of page tables set up. That way, if some very bad addressing happens
in early assembly, we'll see it right away as a triple fault.

We now only set up enough 2M pages to cover the size of the file
we read in.

We had thought we might want to dial it back to 4k pages,
but it turns out guests are pretty careful not to turn off
paging attributes that are enabled; rather, they carefully set up
page tables and then enable what they need, not disabling
anything that might have been set up.

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