OS-7438: refactor bhyve EPT to use generic page tables


Issue Type:Improvement
Priority:4 - Normal
Created at:2018-12-10T20:37:41.228Z
Updated at:2019-02-14T15:28:45.139Z


Created by:Patrick Mooney [X]
Reported by:Patrick Mooney [X]
Assigned to:Patrick Mooney [X]


Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2019-02-14T15:28:39.364Z)

Fix Versions

2019-02-28 Mind Grapes (Release Date: 2019-02-28)

Related Links




The bhyve VM shim which implements EPT should be implemented in terms of the generic page table API proposed in OS-7437. Ideally, as much logic as possible would be shared between EPT and NPT, once the AMD side is ported over.


Comment by Patrick Mooney [X]
Created at 2019-02-06T00:52:36.104Z

Testing for this consisted of bringing various guests up and down on a hypervisor running the updated platform image. Under both DEBUG and non-DEBUG kernels, no issues were observed during EPT setup, operation, or tear-down. This was attempted with fully "wired" memory (via the -S arg to bhyve) in addition to normal operation. Guests sized both smaller (512MB) and larger (8+GB) than the 1G highmem limit were tested. After a series of tests on the DEBUG kernel, it was stopped with halt -d and the subsequent dump was checked for leaks. None related to bhyve were found. (There was some existing noise from ACPI)

Comment by Patrick Mooney [X]
Created at 2019-02-06T15:13:55.169Z

Hans performed some PCI pass-thru tests with that PI and observed no issues:

looks like it's working fine, the ppt VM started and the nvidia samples still work

Comment by Patrick Mooney [X]
Created at 2019-02-07T20:02:00.422Z

Waiting until @ryan.kitchen runs a set of the QA tests on a platform bearing the change before this is merged.

Comment by Jira Bot
Created at 2019-02-14T15:28:45.139Z

illumos-joyent commit c8b89b2e0ef5e796d5ea1ee45802f7ebc39545f4 (branch master, by Patrick Mooney)

OS-7438 refactor bhyve EPT to use generic page tables
OS-7437 want generic indexed page table system
Reviewed by: John Levon <john.levon@joyent.com>
Reviewed by: Hans Rosenfeld <hans.rosenfeld@joyent.com>
Approved by: Hans Rosenfeld <hans.rosenfeld@joyent.com>