acrn-hypervisor/hypervisor/arch/x86
Zide Chen 45b036e028 hv: nested: enable multiple active VMCS12 support
This patch changes the size of vvmcs[] array from 1 to
PER_VCPU_ACTIVE_VVMCS_NUM, and actually enables multiple active VMCS12
support in ACRN.  The basic operations:

- if L1 VMPTRLDs a VMCS12 without previously VMCLEAR the current
  VMCS12, ACRN no longer unconditionally flushes the current VMCS12
  back to L1.  Instead, it tries to keep both the current and the newly
  loaded VMCS12 in the nested->vvmcs[] array, unless:

- if there is no more available vvmcs[] entry, ACRN flushes one active
  VMCS12 to make room for this new VMCS12.

Tracked-On: #6289
Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-09-26 08:49:35 +08:00
..
boot HV: modularization: rename multiboot.h to boot.h 2021-06-11 10:06:02 +08:00
configs hv: Move uuid_is_equal to util.h 2021-08-26 09:24:50 +08:00
guest hv: nested: enable multiple active VMCS12 support 2021-09-26 08:49:35 +08:00
lib HV: rewrite memcpy_s to be iso c11 compliant 2020-06-08 13:30:04 +08:00
seed HV: modularization: use cmdline char array in acrn boot info 2021-06-11 10:06:02 +08:00
cpu_caps.c add vmx capability check 2021-09-18 08:44:30 +08:00
cpu_state_tbl.c hv: dm: Use new power management data structures 2021-07-15 11:53:54 +08:00
cpu.c hv: Pass-through IA32_TSC_AUX MSR to L1 guest 2021-08-26 09:25:54 +08:00
e820.c HV: init hv_e820 from efi mmap if boot from uefi 2021-06-11 10:06:02 +08:00
exception.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
gdt.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
idt.S hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
init.c HV: modularization: add boot.c to wrap multiboot module 2021-06-11 10:06:02 +08:00
ioapic.c hv: paging: rename ppt_set/clear_ATTR to set_paging_ATTR 2021-05-14 09:18:00 +08:00
irq.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
lapic.c hv/mod_timer: separate delay functions from the timer module 2021-05-18 16:43:28 +08:00
mmu.c hv: initialize host IA32_PAT MSR 2021-09-02 09:15:39 +08:00
nmi.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
notify.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
page.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pagetable.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
platform_caps.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pm.c hv: dm: Use new power management data structures 2021-07-15 11:53:54 +08:00
rdt.c hv: fix bugs in RDT's CDP code 2021-09-17 16:29:05 +08:00
rtcm.c hv: update RTCT ACPI table detecting 2021-06-01 08:22:20 +08:00
sched.S hv: sched: rename schedule related structs and vars 2019-10-16 10:25:53 +08:00
security.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
sgx.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
trampoline.c hv: cache: wrap common APIs 2021-05-14 09:18:00 +08:00
tsc_deadline_timer.c hv/mod_timer: make timer into an arch-independent module 2021-05-18 16:43:28 +08:00
tsc.c hv/mod_timer: split tsc handling code from timer. 2021-05-18 16:43:28 +08:00
vmx.c hv: VMPTRLD and VMCLEAR VMCS with the common APIs 2021-05-26 11:22:26 +08:00
vtd.c hv: vtd: a minor refine about dmar_wait_completion 2021-08-10 16:36:15 +08:00
wakeup.S hv: pm: correct the function name 2019-09-11 17:30:24 +08:00