Repository navigation
Conversation
b34cc5d to
fb92ede
Compare
fb92ede to
3736e16
Compare
b440e24 to
4ada969
Compare
4ada969 to
7f2289d
Compare
a70dcfa to
1b275f2
Compare
1b275f2 to
2f42d32
Compare
This comment has been minimized.
This comment has been minimized.
2f42d32 to
0e44f0a
Compare
This comment has been minimized.
This comment has been minimized.
e039b60 to
747ee00
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
A guest-controlled MMIO store can overflow the PC increment and panic the host, while snapshot capture and restore also issue unnecessary separate register requests.
3 open issues
What changed in this PR
This PR implements the Linux aarch64 MSHV backend, allowing Hyperlight to run ARM64 sandboxes through MSHV.
Changes:
- Implements VM creation, memory mapping, MMIO dispatch, register access, and vCPU reset.
- Connects MSHV to ARM64 backend selection and memory-access decoding.
- Adds ARM64 MSHV CI coverage and adjusts test concurrency and platform expectations.
| File | Description |
|---|---|
typos.toml |
Allows an identifier spelling required by MSHV bindings. |
src/hyperlight_host/tests/sandbox_host_tests.rs |
Limits parallel callbacks for ARM64 MSHV. |
src/hyperlight_host/tests/integration_test.rs |
Limits ARM64 MSHV stress-test concurrency. |
src/hyperlight_host/src/sandbox/snapshot/file/config.rs |
Accepts Arm CPU implementers in Linux snapshot tests. |
src/hyperlight_host/src/mem/memory_region.rs |
Decodes ARM64 MSHV memory-access flags. |
src/hyperlight_host/src/hypervisor/virtual_machine/mshv/aarch64.rs |
Implements the ARM64 MSHV virtual machine backend. |
src/hyperlight_host/src/hypervisor/hyperlight_vm/aarch64.rs |
Instantiates MSHV when selected on ARM64. |
.github/workflows/ValidatePullRequest.yml |
Adds debug and release ARM64 MSHV jobs. |
.github/workflows/dep_build_test.yml |
Configures runners, test limits, and snapshot-golden exclusions for ARM64 MSHV. |
Review effort: Balanced
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
bcd0df1 to
938f7e1
Compare
938f7e1 to
fb09873
Compare
This comment has been minimized.
This comment has been minimized.
simongdavies
left a comment
There was a problem hiding this comment.
We should update https://github.com/hyperlight-dev/hyperlight/blob/main/README.md#platform-support.
@syntactically should take a look at this as well
MSHV provides partition creation, memory mappings, MMIO dispatch, batched register access and replacement-VM reset on ARM64. Native CI uses tagged hierarchical-virtualization runners and bounded scheduling for the partition limit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: cshung <3410332+cshung@users.noreply.github.com>
fb09873 to
93e0ffa
Compare
Benchmark ResultsMeasured commit: kvm / amd (Linux) (➖ stable)No benchmark improved or regressed. Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
kvm / intel (Linux) (➖ stable)No benchmark improved or regressed. Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
mshv3 / amd (Linux) (➖ stable)No benchmark improved or regressed. Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
mshv3 / intel (Linux) (❌ 1.73x)Top regressions
Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
hyperv-ws2025 / amd (Windows) (➖ stable)No benchmark improved or regressed. Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
hyperv-ws2025 / intel (Windows) (➖ stable)No benchmark improved or regressed. Benchmark Resultsfunction_call_codec
payload_allocation
sandboxes
slot_pool
snapshot_files
virtq_readonly
virtq_readwrite
Reported by |


ARM64 Linux MSHV
The backend provides partition creation, memory mappings, MMIO dispatch,
general and FPU registers, batched special-register access, and replacement-VM
reset. MMIO PC advancement wraps at the address boundary.
Native ARM64 MSHV CI uses hierarchical-virtualization runners and bounded test
scheduling for the platform's partition limit. Stress tests retain their
iteration counts.
Commit layers
This PR is D, one signed commit directly above
main. It is independent ofGDB support. The MSHV debugger branch has a cherry-pick of shared support A as
E, followed by one MSHV-specific debugger commit F in #2052.
The complete graph and update rules are in
docs/gdb-commit-layers.md.Validation
1,076 passed execution records per profile.