acrn-hypervisor/hypervisor/include/arch/x86/asm/guest
Zide Chen f5744174b5 hv: nested: support for VMPTRLD emulation
This patch emulates the VMPTRLD instruction. L0 hypervisor (ACRN) caches
the VMCS12 that is passed down from the VMPTRLD instruction, and merges it
with VMCS01 to create VMCS02 to run the nested VM.

- Currently ACRN can't cache multiple VMCS12 on one vCPU, so it needs to
  flushes active but not current VMCS12s to L1 guest.
- ACRN creates VMCS02 to run nested VM based on VMCS12:
  1) copy VMCS12 from guest memory to the per vCPU cache VMCS12
  2) initialize VMCS02 revision ID and host-state area
  3) load shadow fields from cache VMCS12 to VMCS02
  4) enable VMCS shadowing before L1 Vm entry

Tracked-On: #5923
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Signed-off-by: Zide Chen <zide.chen@intel.com>
2021-05-24 10:34:01 +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
nested.h hv: nested: support for VMPTRLD emulation 2021-05-24 10:34:01 +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: nested: support for VMXON emulation 2021-05-24 10:34:01 +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: vlapic: wrap a function to calculate destination vcpu mask by shorthand 2021-05-24 10:27:32 +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: nested: support for VMPTRLD emulation 2021-05-24 10:34:01 +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