Muminul Islam
2b42f6c835
hypervisor: mhsv: Implement CPU run loop
...
Handle CPU exits, adding instruction emulations.
Keep CPU specific data inside vmm for later use.
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 >
2020-12-09 14:55:20 +01:00
Muminul Islam
7acb5c6437
hypervisor, mshv: Define MshvEmulatorContext
...
This patch adds the definition and implementation
MshvEmulatorContext which is platform emulation for Hyper-V.
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 >
2020-12-09 14:55:20 +01:00
Muminul Islam
63f356b75b
hypervisor: mhsv: Define software emulated TLB
...
A software emulated TLB. This is mostly used by
the instruction emulator to cache gva to gpa
translations passed from the hypervisor.
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 >
2020-12-09 14:55:20 +01:00
Muminul Islam
fd0ef6cfb5
hypervisor: mshv: Emulate IrqFd and IOEventFd for mshv module
...
We don't have IrqFd and IOEventFd support in the kernel for now.
So an emulation layer is needed. In the future, we will be adding this
support in the kernel.
Co-Developed-by: Wei Liu <liuwe@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2020-12-09 14:55:20 +01:00
Muminul Islam
286a23fbd4
hypervisor: mshv: Add vmmops to MshvVm struct
...
vmmops trait object is needed to get access some
of the upper level vmm functionalities i.e guest
memory access, IO read write etc.
Co-Developed-by: Praveen Paladugu <prapal@microsoft.com >
Signed-off-by: Praveen Paladugu <prapal@microsoft.com >
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2020-12-09 14:55:20 +01:00
Muminul Islam
3a93487b82
hypervisor: mshv: Add Microsoft Hypervisor specific data to Mshv{Vm,Vcpu}
...
Adding hv_state (hyperv state) to Vm and Vcpu struct for mshv.
This state is needed to keep some kernel data(for now hypercall page)
in the vmm.
Co-Developed-by: Praveen Paladugu <prapal@microsoft.com >
Signed-off-by: Praveen Paladugu <prapal@microsoft.com >
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2020-12-09 14:55:20 +01:00
Muminul Islam
23c46b162e
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 >
2020-12-09 14:55:20 +01:00
Muminul Islam
f4af668d76
hypervisor, vmm: Implement MsiInterruptOps for mshv
...
Co-Developed-by: Wei Liu <liuwe@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2020-12-09 14:55:20 +01:00
Muminul Islam
7fe5d276a3
hypervisor: mshv: Add x86_64 module
...
Add x86_64 specific definitions as we only plan
to support x86_64 for the moment.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2020-12-09 14:55:20 +01:00
Muminul Islam
9919dec1d9
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 >
2020-12-09 14:55:20 +01:00