freebsd-dev/sys/amd64/vmm
Neel Natu 52e5c8a2ec Simplify APIC mode switching from MMIO to x2APIC. In part this is done to
simplify the implementation of the x2APIC virtualization assist in VT-x.

Prior to this change the vlapic allowed the guest to change its mode from
xAPIC to x2APIC. We don't allow that any more and the vlapic mode is locked
when the virtual machine is created. This is not very constraining because
operating systems already have to deal with BIOS setting up the APIC in
x2APIC mode at boot.

Fix a bug in the CPUID emulation where the x2APIC capability was leaking
from the host to the guest.

Ignore MMIO reads and writes to the vlapic in x2APIC mode. Similarly, ignore
MSR accesses to the vlapic when it is in xAPIC mode.

The default configuration of the vlapic is xAPIC. The "-x" option to bhyve(8)
can be used to change the mode to x2APIC instead.

Discussed with:	grehan@
2014-02-20 01:48:25 +00:00
..
amd Add an API to rendezvous all active vcpus in a virtual machine. The rendezvous 2014-01-14 01:55:58 +00:00
intel A first pass at adding support for injecting hardware exceptions for 2014-02-18 03:07:36 +00:00
io Simplify APIC mode switching from MMIO to x2APIC. In part this is done to 2014-02-20 01:48:25 +00:00
vmm_dev.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
vmm_host.c Add virtualized XSAVE support to bhyve which permits guests to use XSAVE and 2014-02-08 16:37:54 +00:00
vmm_host.h Add virtualized XSAVE support to bhyve which permits guests to use XSAVE and 2014-02-08 16:37:54 +00:00
vmm_instruction_emul.c Add support for FreeBSD/i386 guests under bhyve. 2014-02-05 04:39:03 +00:00
vmm_ipi.c Move <machine/apicvar.h> to <x86/apicvar.h>. 2014-01-23 20:10:22 +00:00
vmm_ipi.h Don't expose 'vmm_ipinum' as a global. 2014-01-09 03:25:54 +00:00
vmm_ktr.h Add support for level triggered interrupt pins on the vioapic. Prior to this 2013-11-27 22:18:08 +00:00
vmm_lapic.c Simplify APIC mode switching from MMIO to x2APIC. In part this is done to 2014-02-20 01:48:25 +00:00
vmm_lapic.h vlapic code restructuring to make it easy to support hardware-assist for APIC 2013-12-25 06:46:31 +00:00
vmm_mem.c Merge projects/bhyve_npt_pmap into head. 2013-10-05 21:22:35 +00:00
vmm_mem.h Merge projects/bhyve_npt_pmap into head. 2013-10-05 21:22:35 +00:00
vmm_msr.c Fix x2apic support in bhyve. 2013-12-10 22:56:51 +00:00
vmm_msr.h Fix x2apic support in bhyve. 2013-12-10 22:56:51 +00:00
vmm_stat.c Add a counter to differentiate between VM-exits due to nested paging faults 2014-02-08 06:22:09 +00:00
vmm_stat.h Add a counter to differentiate between VM-exits due to nested paging faults 2014-02-08 06:22:09 +00:00
vmm_support.S
vmm_util.c
vmm_util.h
vmm.c Simplify APIC mode switching from MMIO to x2APIC. In part this is done to 2014-02-20 01:48:25 +00:00
x86.c Simplify APIC mode switching from MMIO to x2APIC. In part this is done to 2014-02-20 01:48:25 +00:00
x86.h Allow CPUID leaf 0xD to be read as zeroes. 2013-09-06 05:16:10 +00:00