acrn-hypervisor/hypervisor/include/arch/x86/asm
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
..
boot hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
guest hv: nested: Introduce L2 VM EPT VIOLATION handler 2021-06-04 13:53:47 +08:00
lib hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
apicreg.h hv: vlapic: wrap a function to calculate destination vcpu mask by shorthand 2021-05-24 10:27:32 +08:00
board.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
cpu_caps.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
cpu.h hv: nested: check prerequisites to enter VMX operation 2021-05-24 10:34:01 +08:00
cpufeatures.h hv: Support WAITPKG instructions in guest VM 2021-05-13 14:19:50 +08:00
cpuid.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
default_acpi_info.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
e820.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
gdt.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
host_pm.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
idt.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
init.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
io.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
ioapic.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
irq.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
lapic.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
mmu.h hv: cache: wrap common APIs 2021-05-14 09:18:00 +08:00
msr.h hv: Support WAITPKG instructions in guest VM 2021-05-13 14:19:50 +08:00
notify.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
page.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pci_dev.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
per_cpu.h hv/mod_timer: make timer into an arch-independent module 2021-05-18 16:43:28 +08:00
pgtable.h hv: nested: Introduce L2 VM EPT VIOLATION handler 2021-06-04 13:53:47 +08:00
platform_caps.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
rdt.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
rtcm.h hv: update RTCT ACPI table detecting 2021-06-01 08:22:20 +08:00
rtct.h hv: update RTCT parser to support RTCT version 2 2021-05-17 17:19:11 +08:00
security.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
seed.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
sgx.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
trampoline.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
tsc.h hv/mod_timer: split tsc handling code from timer. 2021-05-18 16:43:28 +08:00
vm_config.h hv: PTM: Create virtual root port 2021-05-19 13:54:24 +08:00
vmx.h hv: nested: define VMCS shadow fields 2021-05-24 10:34:01 +08:00
vtd.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
zeropage.h hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00