Project

General

Profile

Actions

Feature #13932

closed

improve bhyve second level page table support

Added by Dan Cross 3 months ago. Updated 3 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

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.


Related issues

Related to illumos gate - Feature #13862: EPT/RVI supports resetting A/D bitsClosedDan Cross

Actions
Related to illumos gate - Bug #13981: bhyve emulation should set dirty bitsIn ProgressPatrick Mooney

Actions
Related to illumos gate - Bug #14042: GPT: Closed ranges conflict with other code causing panicsClosedDan Cross

Actions
Actions #1

Updated by Electric Monk 3 months ago

  • Gerrit CR set to 1539
Actions #2

Updated by Dan Cross 3 months ago

  • Related to Feature #13862: EPT/RVI supports resetting A/D bits added
Actions #3

Updated by Dan Cross 3 months ago

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.

Actions #4

Updated by Dan Cross 3 months ago

Also, `findleaks` on a kernel dump and saw no unexpected[*] leaks (* ACPICA is known to "leak" RAM which findleaks sees).

Actions #5

Updated by Electric Monk 3 months ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit b4ceea05088ba1b5fae1914544a808623516aa80

commit  b4ceea05088ba1b5fae1914544a808623516aa80
Author: Dan Cross <cross@oxidecomputer.com>
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 <pmooney@pfmooney.com>
    Reviewed by: C Fraire <cfraire@me.com>
    Reviewed by: Adam Leventhal <adam.leventhal@gmail.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions #6

Updated by Patrick Mooney 3 months ago

  • Related to Bug #13981: bhyve emulation should set dirty bits added
Actions #7

Updated by Patrick Mooney about 2 months ago

  • Related to Bug #14042: GPT: Closed ranges conflict with other code causing panics added
Actions

Also available in: Atom PDF