acrn-hypervisor/hypervisor/include/arch/x86/asm/guest
Zide Chen ccfdf9cdd7 hv: nested: enable nested virtualization
Allow guest set CR4_VMXE if CONFIG_NVMX_ENABLED is set:

- move CR4_VMXE from CR4_EMULATED_RESERVE_BITS to CR4_TRAP_AND_EMULATE_BITS
  so that CR4_VMXE is removed from cr4_reserved_bits_mask.
- force CR4_VMXE to be removed from cr4_rsv_bits_guest_value so that CR4_VMXE
  is able to be set.

Expose VMX feature (CPUID01.01H:ECX[5]) to L1 guests whose GUEST_FLAG_NVMX_ENABLED
is set.

Assuming guest hypervisor (L1) is KVM, and KVM uses EPT for L2 guests.

Constraints on ACRN VM.
- LAPIC passthrough should be enabled.
- use SCHED_NOOP scheduler.

Tracked-On: #5923
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-05-13 16:16:30 +08:00
..
assign.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
ept.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
guest_memory.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
guest_pm.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
hyperv.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
instr_emul.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
splitlock.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
trusty.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
ucode.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vcpu.h hv: Support WAITPKG instructions in guest VM 2021-05-13 14:19:50 +08:00
vcpuid.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
virq.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
virtual_cr.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vlapic.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vm_reset.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vm.h hv: nested: enable nested virtualization 2021-05-13 16:16:30 +08:00
vmcs.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vmexit.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vmtrr.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
vmx_io.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00