acrn-hypervisor/hypervisor/include/arch/x86
Kaige Fu 29b7aff59f HV: Use NMI-window exiting to address req missing issue
There is a window where we may miss the current request in the
notification period when the work flow is as the following:

      CPUx +                   + CPUr
           |                   |
           |                   +--+
           |                   |  | Handle pending req
           |                   <--+
           +--+                |
           |  | Set req flag   |
           <--+                |
           +------------------>---+
           |     Send NMI      |  | Handle NMI
           |                   <--+
           |                   |
           |                   |
           |                   +--> vCPU enter
           |                   |
           +                   +

So, this patch enables the NMI-window exiting to trigger the next vmexit
once there is no "virtual-NMI blocking" after vCPU enter into VMX non-root
mode. Then we can process the pending request on time.

Tracked-On: #3886
Acked-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
..
boot hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
guest hv: add lock for ept add/modify/del 2019-12-16 14:41:21 +08:00
lib hv: Add a helper to account bitmap weight 2019-09-24 11:58:45 +08:00
apicreg.h HV: fix violations touched type conversion 2019-07-11 09:16:09 +08:00
board.h HV: fix misra violation on platform clos array 2019-11-08 16:40:14 +08:00
cat.h hv: cat: isolate hypervisor from rtvm 2019-09-05 09:59:13 +08:00
cpu_caps.h hv: support xsave in context switch 2019-12-02 09:31:12 +08:00
cpu.h HV: rename CONFIG_MAX_PCPU_NUM to MAX_PCPU_NUM 2019-12-12 13:49:28 +08:00
cpufeatures.h hv: support xsave in context switch 2019-12-02 09:31:12 +08:00
cpuid.h hv: support xsave in context switch 2019-12-02 09:31:12 +08:00
default_acpi_info.h hv: emulate ACPI reset register for Service OS guest 2019-05-15 11:20:12 +08:00
e820.h hv: mmu: rename e820 to hv_e820 2019-11-07 08:47:02 +08:00
gdt.h hv: coding style: remove no real declaration for external variable 2018-12-20 20:20:08 +08:00
host_pm.h hv: pm: fix coding style issue 2019-09-11 17:30:24 +08:00
idt.h hv:cleanup header files for arch folder 2019-02-22 13:14:36 +08:00
init.h HV: Add prefix 'p' before 'cpu' to physical cpu related functions 2019-04-24 10:50:28 +08:00
io.h hv:modulization for IO Emulation 2019-01-21 13:49:54 +08:00
ioapic.h hv: Avoid run-time buffer overflows with IOAPIC data structures 2019-06-24 11:41:10 +08:00
irq.h HV: Use NMI-window exiting to address req missing issue 2019-12-16 16:54:30 +08:00
lapic.h HV: Add helper function send_single_nmi 2019-12-13 10:13:09 +08:00
mmu.h hv:change function parameter for invept 2019-09-05 16:32:30 +08:00
msr.h hv: ept: apply MCE on page size change mitigation conditionally 2019-12-03 09:17:04 +08:00
multiboot.h hv:tiny cleanup 2019-09-05 09:58:47 +08:00
page.h hv: ept: build 4KB page mapping in EPT for RTVM for MCE on PSC 2019-12-03 09:17:04 +08:00
pci_dev.h hv: vpci: add emulated PCI device configure for SOS 2019-08-09 14:19:49 +08:00
per_cpu.h HV: rename CONFIG_MAX_PCPU_NUM to MAX_PCPU_NUM 2019-12-12 13:49:28 +08:00
pgtable.h hv:change function parameter for invept 2019-09-05 16:32:30 +08:00
security.h hv: ept: apply MCE on page size change mitigation conditionally 2019-12-03 09:17:04 +08:00
seed.h hv: seed: refine header file 2019-03-15 14:09:56 +08:00
sgx.h hv: sgx: add basic support to init sgx resource for vm 2019-05-29 11:24:13 +08:00
timer.h hv:move 'udelay' to timer.c 2019-03-22 08:38:13 +08:00
trampoline.h hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
vm_config.h HV: Kconfig: remove MAX_VCPUS_PER_VM in Kconfig 2019-12-12 13:49:28 +08:00
vmx.h hv: allocate vpid based on vm_id and vcpu_id mapping 2019-04-22 19:57:28 +08:00
vtd.h HV: add DRHD index to pci_pdev 2019-11-27 09:49:32 +08:00
zeropage.h hv:remove common header files 2019-05-07 09:10:13 +08:00