improve bhyve second level page table support
As part of the march towards supporting live migration in bhyve, we would like improve support for the handling of hardware-defined nested page tables. There's nothing wrong with the code that is there now per se, but it would be nice to have an accounting structure that more closely matched the shape of the second level paging radix tree, and that supports walking the nested page table by directly access the hardware page table structures.
For testing: we booted kernels with this code on both AMD and Intel hosts and booted VMs running Linux and Windows, where we observed that the system remained stable and performant.
Additionally, I built a testing shim that allowed me to exercise the new code from userspace, letting me make assertions against the new interfaces and validate that they behaved as expected, dump the radix tree, etc. Unfortunately, the shim itself is a bit messy, so that code is not included here.
Updated by Electric Monk 6 months ago
- Status changed from New to Closed
- % Done changed from 0 to 100
commit b4ceea05088ba1b5fae1914544a808623516aa80 Author: Dan Cross <firstname.lastname@example.org> Date: 2021-07-26T18:16:10.000Z 13932 improve bhyve second level page table support 13862 EPT/RVI supports resetting A/D bits Reviewed by: Patrick Mooney <email@example.com> Reviewed by: C Fraire <firstname.lastname@example.org> Reviewed by: Adam Leventhal <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>