1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-13 14:40:22 +00:00
freebsd/sys/amd64/vmm
Neel Natu 953c2c47eb Avoid doing unnecessary nested TLB invalidations.
Prior to this change the cached value of 'pm_eptgen' was tracked per-vcpu
and per-hostcpu. In the degenerate case where 'N' vcpus were sharing
a single hostcpu this could result in 'N - 1' unnecessary TLB invalidations.
Since an 'invept' invalidates mappings for all VPIDs the first 'invept'
is sufficient.

Fix this by moving the 'eptgen[MAXCPU]' array from 'vmxctx' to 'struct vmx'.

If it is known that an 'invept' is going to be done before entering the
guest then it is safe to skip the 'invvpid'. The stat VPU_INVVPID_SAVED
counts the number of 'invvpid' invalidations that were avoided because
they were subsumed by an 'invept'.

Discussed with:	grehan
2014-02-04 02:45:08 +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 Avoid doing unnecessary nested TLB invalidations. 2014-02-04 02:45:08 +00:00
io Support level triggered interrupts with VT-x virtual interrupt delivery. 2014-01-25 20:58:05 +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 Corral all the host state associated with the virtual machine into its own file. 2012-10-29 01:51:24 +00:00
vmm_host.h Corral all the host state associated with the virtual machine into its own file. 2012-10-29 01:51:24 +00:00
vmm_instruction_emul.c Remove unnecessary includes of <machine/pmap.h> 2013-10-29 02:25:18 +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 Allow vlapic_set_intr_ready() to return a value that indicates whether or not 2014-01-07 00:38:22 +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 Handle a VM-exit due to a NMI properly by vectoring to the host's NMI handler 2014-01-22 04:03:11 +00:00
vmm_stat.h Handle a VM-exit due to a NMI properly by vectoring to the host's NMI handler 2014-01-22 04:03:11 +00:00
vmm_support.S
vmm_util.c
vmm_util.h
vmm.c Support level triggered interrupts with VT-x virtual interrupt delivery. 2014-01-25 20:58:05 +00:00
x86.c Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose 2013-10-16 18:20:27 +00:00
x86.h Allow CPUID leaf 0xD to be read as zeroes. 2013-09-06 05:16:10 +00:00