[GSOC] Implement hardware nested page table support for vkernels

Mihai Carabas mihai.carabas at gmail.com
Tue Aug 20 01:18:46 PDT 2013


Sorry for the late e-mail for the work in the previous week. Last week I
haven't coded much, but I have made an assessment about what should be done
to enable EPT. I can't just enable EPT from configs, I first have to build
the EPT page-tables/vkernel page-tables in order to be able to bootstrap
the vkernel. Browsing through the EPT chapter in the Intel manual, I saw
that EPT page-tables format is **different** than the normal page-table.
This means I can't use the current pmap code at all. Dillon came with the
idea of removing the PG_* defines and introduce them in the "struct pmap",
thus enabling us of using a custom pmap, depending on type of page-tables.
We are not sure this would be the best approach.

I looked over FreeBSD code and they build another module for
allocating/mapping the memory for the GUEST (including building the
page-tables). The code is very simple as they are wiring all the memory for
the guest. Dillon said that would be cool if we implement this directly in
the pmap code because would enable us the posibility to not wire all the
memory for a guest and be able to run more of them with an memory
overcommit using swapping.

I also looked in AMD manual to see what are the page-table structures for
NPT but it doesn't seem to differ from the normal ones. It's wierd why
Intel did change them.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20130820/a768c47d/attachment-0003.htm>

More information about the Kernel mailing list