Tracking issues Guest Copy on Write.
Brief design overview
When running on a Type 1 hypervisor, servicing a Stage 2 translation
page fault is relatively quite expensive, since it requires quite a
lot of context switches. To help alleviate this, Hyperlight will use a
design in which the guest is aware of readonly snapshot from
which it is being run, and manages its own copy-on-write.
Because of this, there are two very fundamental regions of the guest
physical address space, which are always populated: one, at the very
bottom of memory, is a (hypervisor-enforced) readonly mapping of the
base snapshot from which this guest is being evolved. Another, at the
top of memory, is simply a large bag of blank pages: scratch memory
into which this VM can write.
See more in the proposal at 3d59400
TODO:
POC on older branch: main...lm/guest-cow
old PR that tracked things: #1091
This is particularly improtant for Hyperlight-wasm. There are steps to leverage this there:
Tracking issues Guest Copy on Write.
Brief design overview
When running on a Type 1 hypervisor, servicing a Stage 2 translation
page fault is relatively quite expensive, since it requires quite a
lot of context switches. To help alleviate this, Hyperlight will use a
design in which the guest is aware of readonly snapshot from
which it is being run, and manages its own copy-on-write.
Because of this, there are two very fundamental regions of the guest
physical address space, which are always populated: one, at the very
bottom of memory, is a (hypervisor-enforced) readonly mapping of the
base snapshot from which this guest is being evolved. Another, at the
top of memory, is simply a large bag of blank pages: scratch memory
into which this VM can write.
See more in the proposal at 3d59400
TODO:
POC on older branch: main...lm/guest-cow
old PR that tracked things: #1091
HyperlightPEB::code_ptr#1100This is particularly improtant for Hyperlight-wasm. There are steps to leverage this there: