acrn-hypervisor/hypervisor/include/arch/x86
Sainath Grandhi 536c69b9ff hv: distinguish between LAPIC_PASSTHROUGH configured vs enabled
ACRN supports LAPIC emulation for guests using x86 APICv. When guest OS/BIOS
switches from xAPIC to x2APIC mode of operation, ACRN also supports switching
froom LAPIC emulation to LAPIC passthrough to guest. User/developer needs to
configure GUEST_FLAG_LAPIC_PASSTHROUGH for guest_flags in the corresponding
VM's config for ACRN to enable LAPIC passthrough.

This patch does the following

1)Fixes a bug in the abovementioned feature. For a guest that is
configured with GUEST_FLAG_LAPIC_PASSTHROUGH, during the time period guest is
using xAPIC mode of LAPIC,  virtual interrupts are not delivered. This can be
manifested as guest hang when it does not receive virtual timer interrupts.

2)ACRN exposes physical topology via CPUID leaf 0xb to LAPIC PT VMs. This patch
removes that condition and exposes virtual topology via CPUID leaf 0xb.

Tracked-On: #3136
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
2019-05-23 11:15:31 +08:00
..
boot hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
guest hv: distinguish between LAPIC_PASSTHROUGH configured vs enabled 2019-05-23 11:15:31 +08:00
lib hv:move several files related X86 for lib 2019-05-13 10:12:20 +08:00
apicreg.h hv: Use Interrupt Remapping format for programming interrupt sources 2019-02-01 15:54:55 +08:00
board.h hv: remove CONFIG_PARTITION_MODE for pre-launched VM vE820 creation 2019-03-19 14:28:43 +08:00
cat.h HV: CAT: support config CAT from acrn_vm_config 2019-02-28 11:22:29 +08:00
cpu_caps.h hv: vmsr: handle guest msr ia32_misc_enable read/write 2019-05-09 16:35:15 +08:00
cpu.h hv:Move BUS_LOCK to atomic.h 2019-05-13 10:12:20 +08:00
cpufeatures.h HV: CAT: capability enumaration 2019-02-28 11:22:29 +08:00
cpuid.h hv: vcpuid: modify vcpuid according to msr ia32_misc_enable 2019-05-09 16:35:15 +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: remove CONFIG_PARTITION_MODE for pre-launched VM vE820 creation 2019-03-19 14:28:43 +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: fix MISRA violation of host_pm.h 2019-05-15 09:31:43 +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 doc: remove hard-coded interfaces in .rst files 2019-05-22 12:40:52 -07:00
irq.h doc: remove hard-coded interfaces in .rst files 2019-05-22 12:40:52 -07:00
lapic.h doc: remove hard-coded interfaces in .rst files 2019-05-22 12:40:52 -07:00
mmu.h HV: Add prefix 'p' before 'cpu' to physical cpu related functions 2019-04-24 10:50:28 +08:00
msr.h hv: msr: use UL since ia32_misc_enable is 64bit 2019-05-09 16:35:15 +08:00
multiboot.h restruct boot and bsp dir for firmware stuff 2019-05-09 16:33:44 +08:00
page.h hv: add support of EPT mapping of high MMIO 2019-02-28 18:33:11 +08:00
per_cpu.h hv:remove some unnecessary includes 2019-05-16 10:33:01 +08:00
pgtable.h doc: remove hard-coded interfaces in .rst files 2019-05-22 12:40:52 -07:00
security.h Make ibrs_type as internal variable 2018-12-19 09:07:14 +08:00
seed.h hv: seed: refine header file 2019-03-15 14:09:56 +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: remove unused UNDEFINED_VM 2019-05-22 10:01:20 +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: remove unused function disable_iommu 2019-05-22 16:36:03 +08:00
zeropage.h hv:remove common header files 2019-05-07 09:10:13 +08:00