#
496ceed1 |
| 11-May-2021 |
Rob Bradford <robert.bradford@intel.com> |
misc: Remove unnecessary "extern crate"
Now all crates use edition = "2018" then the majority of the "extern crate" statements can be removed. Only those for importing macros need to remain.
Signed
misc: Remove unnecessary "extern crate"
Now all crates use edition = "2018" then the majority of the "extern crate" statements can be removed. Only those for importing macros need to remain.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
show more ...
|
#
7fad74cb |
| 10-Mar-2021 |
Vineeth Pillai <viremana@linux.microsoft.com> |
hypervisor: refactor vec_with_array_field function
refactor vec_with_array_field to common hypervisor code so that mshv can also make use of it.
Signed-off-by: Vineeth Pillai <viremana@linux.micros
hypervisor: refactor vec_with_array_field function
refactor vec_with_array_field to common hypervisor code so that mshv can also make use of it.
Signed-off-by: Vineeth Pillai <viremana@linux.microsoft.com>
show more ...
|
#
8c85dd32 |
| 10-Dec-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Move msr and msr_data macro to arch/x86
Currently these two macros(msr, msr_data) reside both on kvm and mshv module. Definition is same for both module. Moving them to arch/x86 module e
hypervisor: Move msr and msr_data macro to arch/x86
Currently these two macros(msr, msr_data) reside both on kvm and mshv module. Definition is same for both module. Moving them to arch/x86 module eliminates redundancy and makes more sense.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
23c46b16 |
| 03-Dec-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor, vmm: Implement the mshv module and add mshv support in vmm
Implement hypervisor, Vm, Vcpu crate at a minimal functionalities. Also adds the mshv feature gate, separates out the functiona
hypervisor, vmm: Implement the mshv module and add mshv support in vmm
Implement hypervisor, Vm, Vcpu crate at a minimal functionalities. Also adds the mshv feature gate, separates out the functionalities between kvm and mshv inside the vmm crate.
Co-Developed-by: Nuno Das Neves <nudasnev@microsoft.com> Signed-off-by: Nuno Das Neves <nudasnev@microsoft.com> Co-Developed-by: Praveen Paladugu <prapal@microsoft.com> Signed-off-by: Praveen Paladugu <prapal@microsoft.com> Co-Developed-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Co-Developed-by: Wei Liu <liuwe@microsoft.com> Signed-off-by: Wei Liu <liuwe@microsoft.com> Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
9919dec1 |
| 03-Dec-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Introduce mshv module in the hypervisor
This is the initial folder structure of the mshv module inside the hypervisor crate. The aim of this module is to support Microsoft Hyper-V as a s
hypervisor: Introduce mshv module in the hypervisor
This is the initial folder structure of the mshv module inside the hypervisor crate. The aim of this module is to support Microsoft Hyper-V as a supported Hypervisor.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
9ce6c3b7 |
| 04-Dec-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor, vmm: Feature guard KVM specific code
There are some code base and function which are purely KVM specific for now and we don't have those supports in mshv at the moment but we have plan f
hypervisor, vmm: Feature guard KVM specific code
There are some code base and function which are purely KVM specific for now and we don't have those supports in mshv at the moment but we have plan for the future. We are doing a feature guard with KVM. For example, KVM has mp_state, cpu clock support, which we don't have for mshv. In order to build those code we are making the code base for KVM specific compilation.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
ffafeda4 |
| 30-Aug-2020 |
Henry Wang <Henry.Wang@arm.com> |
AArch64: Implement AArch64 vCPU states save/restore
This commit adds methods to save/restore AArch64 vCPU registers, including:
1. The AArch64 `VcpuKvmState` structure.
2. Some `Vcpu` trait method
AArch64: Implement AArch64 vCPU states save/restore
This commit adds methods to save/restore AArch64 vCPU registers, including:
1. The AArch64 `VcpuKvmState` structure.
2. Some `Vcpu` trait methods of the `KvmVcpu` structure to enable the save/restore of the AArch64 vCPU states.
Signed-off-by: Henry Wang <Henry.Wang@arm.com>
show more ...
|
#
77e901a6 |
| 21-Aug-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Introduce VM state to Vm hypervisor trait
We may need to store hypervisor speciific data to the VM. This support is needed for Microsoft hyperv implementations. This patch introduces two
hypervisor: Introduce VM state to Vm hypervisor trait
We may need to store hypervisor speciific data to the VM. This support is needed for Microsoft hyperv implementations. This patch introduces two new definitions to Vm trait and implements for KVM.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
0f1ab38d |
| 05-Aug-2020 |
Sebastien Boeuf <sebastien.boeuf@intel.com> |
hypervisor: kvm: Make MSRs set/get more flexible
Based on the way KVM_GET_MSRS and KVM_SET_MSRS work, both function are very unlikely to fail, as they simply stop looping through the list of MSRs as
hypervisor: kvm: Make MSRs set/get more flexible
Based on the way KVM_GET_MSRS and KVM_SET_MSRS work, both function are very unlikely to fail, as they simply stop looping through the list of MSRs as soon as getting or setting one fails. This is causing some issues with the snapshot/restore feature, as on some platforms, we only save a subset of the list of MSRs, leading to unproper way of saving the VM.
The way to address this issue is by checking the number of MSRs get/set matches the expected amount from the list. In case it does not match, we simply ignore the failing MSR and continue getting/setting the rest of the list. By doing this by iterations, we end up getting/setting as many MSRs as the platform can support.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
show more ...
|
#
e7288888 |
| 16-Jul-2020 |
Michael Zhao <michael.zhao@arm.com> |
hypervisor: Extend hypervisor crate with Device trait
Added Device trait and KvmDevice struct for KVM-emulated devices.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
|
#
a83bd97e |
| 14-Jul-2020 |
Wei Liu <liuwe@microsoft.com> |
hypervisor: introduce a new function
It returns an hypervisor object depending on which hypervisor is configured. Currently it only supports KVM.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
|
#
a4f484bc |
| 03-Jul-2020 |
Wei Liu <liuwe@microsoft.com> |
hypervisor: Define a VM-Exit abstraction
In order to move the hypervisor specific parts of the VM exit handling path, we're defining a generic, hypervisor agnostic VM exit enum.
This is what the hy
hypervisor: Define a VM-Exit abstraction
In order to move the hypervisor specific parts of the VM exit handling path, we're defining a generic, hypervisor agnostic VM exit enum.
This is what the hypervisor's Vcpu run() call should return when the VM exit can not be completely handled through the hypervisor specific bits. For KVM based hypervisors, this means directly forwarding the IO related exits back to the VMM itself. For other hypervisors that e.g. rely on the VMM to decode and emulate instructions, this means the decoding itself would happen in the hypervisor crate exclusively, and the rest of the VM exit handling would be handled through the VMM device model implementation.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Fix test_vm unit test by using the new abstraction and dropping some dead code.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
show more ...
|
#
2518b9e3 |
| 28-Jun-2020 |
Wei Liu <liuwe@microsoft.com> |
vmm: hypervisor: fix white space issues
Signed-off-by: Wei Liu <liuwe@microsoft.com>
|
#
72ae1577 |
| 26-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Update license to Apache-2.0 OR BSD-3-Clause
Initially the licensing was just Apache-2.0. This patch changes the licensing to dual license Apache-2.0 OR BSD-3-Clause
Signed-off-by: Mumi
hypervisor: Update license to Apache-2.0 OR BSD-3-Clause
Initially the licensing was just Apache-2.0. This patch changes the licensing to dual license Apache-2.0 OR BSD-3-Clause
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|
#
c48d0c1a |
| 02-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: kvm: Implement vCPU state method
Implement the vCPU state getter and setter separately from the initial KVM Hypervisor trait implementation, mostly for readability purposes.
Signed-off-
hypervisor: kvm: Implement vCPU state method
Implement the vCPU state getter and setter separately from the initial KVM Hypervisor trait implementation, mostly for readability purposes.
Signed-off-by: Muminul Islam <muislam@microsoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
show more ...
|
#
72e39a34 |
| 03-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Add KVM implementation
For each of the traits we are defining kvm related structures and add the trait implementation to the structs. For more information please see the kvm-ioctls and k
hypervisor: Add KVM implementation
For each of the traits we are defining kvm related structures and add the trait implementation to the structs. For more information please see the kvm-ioctls and kvm-bindings crate.
This is a standalone implementation that does not include the switch of the Cloud-Hypervisor vmm and arch crates to it.
Signed-off-by: Muminul Islam <muislam@microsoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
show more ...
|
#
683210d6 |
| 03-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Add Hypervisor trait
As the only hypervisor that Cloud-Hypervisor supports is KVM, the Hypervisor trait accomodates for the upcoming KVM implementation.
This trait will be instanciated
hypervisor: Add Hypervisor trait
As the only hypervisor that Cloud-Hypervisor supports is KVM, the Hypervisor trait accomodates for the upcoming KVM implementation.
This trait will be instanciated at build time through hypervisor specific features, i.e. it's not aiming at run-time selection of hypervisors for Cloud-Hypervisor.
Signed-off-by: Muminul Islam <muislam@microsoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
show more ...
|
#
f5afc288 |
| 03-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Add Vm trait
This VM trait should be implemented by each underlying hypervisor.
Previously created hypervisor object should create the VM based on already selected hypervisor. This is j
hypervisor: Add Vm trait
This VM trait should be implemented by each underlying hypervisor.
Previously created hypervisor object should create the VM based on already selected hypervisor. This is just the trait definition. For each of supported hypervisor we need to implement the trait. Later we will implement this trait for KVM and then Microsoft Hyper-V.
Signed-off-by: Muminul Islam <muislam@microsoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
show more ...
|
#
f9b51a41 |
| 03-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Add Vcpu trait
This Vcpu trait should be implemented by each underlying hypervisor.
Previously created hypervisor object should create the VM based on already selected hypervisor and Vm
hypervisor: Add Vcpu trait
This Vcpu trait should be implemented by each underlying hypervisor.
Previously created hypervisor object should create the VM based on already selected hypervisor and Vm object should create this vcpu object based on same hyperviosr. Each of this object should be referenced by trait object i.e <dyn Vcpu>.
Signed-off-by: Muminul Islam <muislam@microsoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
show more ...
|
#
56a16385 |
| 08-Jun-2020 |
Muminul Islam <muislam@microsoft.com> |
hypervisor: Introduce hypervisor crate
The purpose of this trait is to add support for other hypervisors than KVM, like e.g. Microsoft Hyper-V.
Further commits will define additional hypervisor rel
hypervisor: Introduce hypervisor crate
The purpose of this trait is to add support for other hypervisors than KVM, like e.g. Microsoft Hyper-V.
Further commits will define additional hypervisor related traits like Vcpu and Vm. Each of the supported hypervisor will need to implement all traits defined from the hypervisor crate.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
show more ...
|