mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-11-24 12:34:31 +00:00
97dbce5226
Refactor `init` and add function `get_features` to get the Vcpu features. Previously some features were only retrieved as part of `init`. Add function `finalize` which is required for SVE support. SVE requires `KVM_ARM_VCPU_INIT` to be called first, which gives access to the SVE config, specifically `KVM_REG_ARM64_SVE_VLS`, which is a pseudo-register that allows discovering and configuring the vector lengths by userspace. After `finalize` is called, `KVM_REG_ARM64_SVE_VLS` is no longer accessible, and the config is final. In this patch, we are not modifying the vector lengths, reason behind this is `KVM_ARM_VCPU_INIT` initializes `KVM_REG_ARM64_SVE_VLS` to the best set of vector lengths that the host supports. BUG=b:375372656 TEST=presubmit Change-Id: Ibd0902ad68f28b9d4e9a595070fe972e620e5572 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5973935 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Frederick Mayle <fmayle@google.com> Commit-Queue: Elie Kheirallah <khei@google.com> |
||
---|---|---|
.. | ||
hypervisor_test_macro | ||
src | ||
tests | ||
Cargo.toml | ||
README.md |
Hypervisor Support
Multiple hypervisor backends are supported. See Advanced Usage for overriding the default backend.
Hypervisors added to crosvm must meet the following requirements:
- Hypervisor code must be buildable in crosvm upstream.
- Within reason, crosvm maintainers will ensure the hypervisor's code continues to build.
- Hypervisors are not required to be tested upstream.
- We can't require testing upstream because some hypervisors require specialized hardware.
- When not tested upstream, the hypervisor's maintainers are expected to test it downstream. If a change to crosvm breaks something downstream, then the hypervisor's maintainers are expected to supply the fix and can't expect a revert of the culprit change to be accepted upstream.
KVM
- Platforms: Linux
- Tested upstream: yes
KVM is crosvm's preferred hypervisor for Linux.
WHPX
- Platforms: Windows
- Tested upstream: no
- Contacts: vnagarnaik@google.com
HAXM
- Platforms: Windows
- Tested upstream: no
- Contacts: vnagarnaik@google.com
Android Specific
The hypervisors in this section are used as backends of the Android Virtualization Framework.
Geniezone
- Platforms: Linux, aarch64 only
- Tested upstream: no
- Contacts: fmayle@google.com, smoreland@google.com
Gunyah
- Platforms: Linux, aarch64 only
- Tested upstream: no
- Contacts: quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, fmayle@google.com, smoreland@google.com