Praveen K Paladugu
ad202f9b7a
hypervisor: x86: emulate MOVSB
...
Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com >
2023-01-27 21:14:38 +00:00
Wei Liu
3a225aaa23
hypervisor: x86: emulate MOVSW
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2023-01-27 21:14:38 +00:00
Wei Liu
1bfa07f48e
hypervisor: x86: use a macro to generate emulate function for movs
...
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2023-01-27 21:14:38 +00:00
Sebastien Boeuf
e4ae668bcd
tdx: Update support based on kvm-upstream v5.19
...
In order to comply with latest TDX version, we rely onto the branch
kvm-upstream-2022.08.07-v5.19-rc8 from https://github.com/intel/tdx
repository. Updates are based on changes that happened in
arch/x86/include/uapi/asm/kvm.h headers file.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com >
2023-01-20 09:59:56 +00:00
Muminul Islam
7d8f795430
hypervisor: remove unnecessary derive of HypervisorType
...
There was an unnecessary change in previous PR #5077 .
This is the follow-up clean up patch.
Right now there is no use case of the drive of
Eq and PartialEq.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2023-01-12 09:03:28 +01:00
Muminul Islam
4e3bc20f2c
vmm: Ensure PIO/MMIO exits complete before pausing only for KVM
...
MSHV does not require to ensure MMIO/PIO exits complete
before pausing. This patch makes sure the above requirement
by checking the hypervisor type run-time.
Fixes #5037
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2023-01-11 17:15:56 +00:00
Jinank Jain
8914ce9da8
build: Bump mshv-ioctls from 10d0c52 to ef01a5a
...
With this bump there was a change in one of the externally exposed
variable. Thus, the use of that variable in CLH must be adjusted
accordingly.
Signed-off-by: Jinank Jain <jinankjain@microsoft.com >
2022-12-20 10:10:34 +00:00
Wei Liu
3a232ef31a
hypervisor: kvm: aarch64: remove repetition in offset_of
...
The repetition served no purpose.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-12-16 17:04:43 +00:00
Wei Liu
cd83d258b8
hypervisor: kvm: aarch64: rename offset__of to offset_of
...
The double underscore made it different from how other projects would
name this particular macro.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-12-16 17:04:43 +00:00
Rob Bradford
5e52729453
misc: Automatically fix cargo clippy issues added in 1.65 (stable)
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-12-14 14:27:19 +00:00
Rob Bradford
a48d7c281e
vmm: seccomp: Remove unreachable patterns
...
Make HypervisorType enum's members conditional on build time features.
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-12-13 18:10:42 +00:00
Rob Bradford
4b08142117
misc: Remove #![allow(clippy::significant_drop_in_scrutinee)]
...
This isn't supported by clippy on Rust 1.60 but also no longer seems to
be required.
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-12-07 17:50:48 +00:00
Rob Bradford
3888f57600
aarch64: Remove unnecessary casts (beta clippy check)
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-12-01 17:02:30 +00:00
Wei Liu
7f2723d9c6
hypervisor: x86: add two safety comments
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-11-18 12:50:01 +00:00
Wei Liu
6c89c541da
hypervisor: kvm: add two safety comments
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-11-18 12:50:01 +00:00
Wei Liu
d272113d0c
hypervisor: mshv: modify two safety comments
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-11-18 12:50:01 +00:00
Wei Liu
2e2ce47271
hypervisor: do not get and set MSR_IA32_TSC for MSHV
...
Setting that MSR causes the reference TSC page to be disabled.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-11-15 10:19:57 +00:00
Bo Chen
a9ec0f33c0
misc: Fix clippy issues
...
Signed-off-by: Bo Chen <chen.bo@intel.com >
2022-11-02 09:41:43 +01:00
Jinank Jain
7a68689794
hypervisor: Fix a typo in error message
...
Signed-off-by: Jinank Jain <jinankjain@microsoft.com >
2022-10-16 09:33:08 +00:00
Rob Bradford
b8503b5f45
hypervisor: Support compiling "tdx" and "mshv" feature together
...
TDX functionality is not currently available on MSHV but we should not
preclude building a binary that can run on both.
Fixes : #4677
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-09-27 14:30:49 +01:00
Rob Bradford
a375e230b8
misc: Manual beta clippy fixes (boolean to int conversion using if)
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-09-20 10:59:48 +01:00
Wei Liu
cb00dbe6ec
build: update to the latest kvm-ioctls
...
The latest kvm-ioctls contains a breaking change to its API. Now Arm's
get/set_one_reg use u128 instead of u64.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-09-15 13:35:12 +01:00
Nuno Das Neves
784a3aaf3c
devices: gic: use VgicConfig everywhere
...
Use VgicConfig to initialize Vgic.
Use Gic::create_default_config everywhere so we don't always recompute
redist/msi registers.
Add a helper create_test_vgic_config for tests in hypervisor crate.
Signed-off-by: Nuno Das Neves <nudasnev@microsoft.com >
2022-08-31 08:33:05 +01:00
Nuno Das Neves
a832033531
devices: gic: Introduce VgicConfig and Gic::create_default_config()
...
VgicConfig structure will be used for initializing the Vgic.
Gic::create_default_config will be used everywhere we currently compute
redist/msi registers.
Signed-off-by: Nuno Das Neves <nudasnev@microsoft.com >
2022-08-31 08:33:05 +01:00
Michael Zhao
d66d64c325
vmm: Restrict the maximum number of HW breakpoints
...
Set the maximum number of HW breakpoints according to the value returned
from `Hypervisor::get_guest_debug_hw_bps()`.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-08-23 16:57:12 +02:00
Michael Zhao
223b1f6c51
hypervisor: Introduce get_guest_debug_hw_bps()
...
Added `Hypervisor::get_guest_debug_hw_bps()` for fetching the number of
supported hardware breakpoints.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-08-23 16:57:12 +02:00
Michael Zhao
575458ded4
hypervisor: Enable gdb HW breakpoint on AArch64
...
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-08-21 17:07:26 +08:00
Wei Liu
00c1b4a95b
hypervisor: fix a clippy warning
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-08-09 17:20:14 +00:00
Michael Zhao
7199119bb2
hypervisor: Remove Vcpu::read_mpidr() on AArch64
...
Replaced `read_mpidr()` with `get_sys_reg()`.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-29 11:45:12 +01:00
Michael Zhao
5b54dc60aa
hypervisor: Add Vcpu::get_sys_reg() on AArch64
...
Added function `Vcpu::get_sys_reg()` to get single system register.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-29 11:45:12 +01:00
Michael Zhao
cd7f36a713
hypervisor: Remove get/set_reg() on AArch64
...
`Vcpu::get/set_reg()` were only invoked in Vcpu itself.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-29 11:45:12 +01:00
Michael Zhao
f7b6d99c2d
hypervisor: Remove get/set_sys_regs() on AArch64
...
`hypervisor::Vcpu::get/set_sys_regs()` are only used in Vcpu internally.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-29 11:45:12 +01:00
Wei Liu
e1a70f676a
hypervisor: use serde_with with LapicState
...
Drop the hand-rolled serializer and deserializer.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-28 14:57:29 +01:00
Wei Liu
bec47ebcc9
hypervisor: simplify LapicState
...
Both KVM and MSHV share the same layout. We can drop one level of
indirection.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-28 08:52:28 +01:00
Rob Bradford
b1a87cb698
hypervisor: mshv: Remove more #[allow(dead_code)] and unused code
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-25 10:09:46 +01:00
Wei Liu
ff7773044c
tree-wide: drop some unneeded allow clauses
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 14:37:03 +01:00
Wei Liu
7b99bd9496
hypervisor: suppress clippy::large_enum_variant
...
MSHV's vcpu state is small, but it will grow in the future.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
bb19c3d2b7
hypervisor: pick the available hypervisor automatically
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
aa66526ea0
hypervisor: add a function to check availability
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
c3ce5aa5b1
hypervisor: adjust new function return type
...
Make them return wrapped trait object directly.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
9fc3379e8d
hypervisor: add a function to return hypervisor type
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
4a00371fe8
hypervisor: drop unused modules
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
ae7f74d0a8
hypervisor: drop kvm guard from some Vcpu trait functions
...
And provide default implementations.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
cb6a14dec9
hypervisor: drop check_extension from Vm trait
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-22 12:50:12 +01:00
Wei Liu
a96a5d7816
hypervisor, vmm: use new vfio-ioctls
...
Use the new vfio-ioctls APIs. Drop Cloud Hypervisor's Device trait
since it is no longer needed.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00
Wei Liu
5e2c70b87f
hypervisor: aarch64: drop set/has_vcpu_attr
...
This avoids the need for exposing DeviceAttr.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00
Wei Liu
eca6609dbb
hypervisor: mshv: create_device returns DeviceFd directly
...
This aligns with KVM's code. No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00
Wei Liu
c5e966c972
hypervisor: aarch64: use KVM DeviceFd in GIC code
...
The code is obviously KVM only. We don't need to use dyn Device there.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00
Wei Liu
0856ebbd42
hypervisor: aarch64: drop set_its_device
...
The field can be set directly.
This eliminates one place where dyn Device is used outside of KVM
aarch64 code.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00
Wei Liu
422bf89d4d
hypervisor: drop create_device from Vm trait
...
This then avoids the need for creating a generic DeviceFd type in the
hypervisor crate.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-21 23:37:53 +01:00