acrn-hypervisor/hypervisor/include/arch/x86/asm/guest
Shuo A Liu b10b5658bd hv: nested: Introduce L2 VM EPT VIOLATION handler
With shadow EPT, the hypervisor walks through guest EPT table:

  * If the entry is not present in guest EPT, ACRN injects EPT_VIOLATION
    to L1 VM and resumes to L1 VM.

  * If the entry is present in guest EPT, do the EPT_MISCONFIG check.
    Inject EPT_MISCONFIG to L1 VM if the check failed.

  * If the entry is present in guest EPT, do permission check.
    Reflect EPT_VIOLATION to L1 VM if the check failed.

  * If the entry is present in guest EPT but shadow EPT entry is not
    present, create the shadow entry and resumes to L2 VM.

  * If the entry is present in guest EPT but the GPA in the entry is
    invalid, injects EPT_VIOLATION to L1 VM and resumes L1 VM.

Tracked-On: #5923
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Signed-off-by: Zide Chen <zide.chen@intel.com>
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-06-04 13:53:47 +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: implement nested VM exit handler 2021-06-03 15:23:25 +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
vept.h hv: nested: Introduce L2 VM EPT VIOLATION handler 2021-06-04 13:53:47 +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