freebsd-dev/sys/amd64/vmm
Mark Johnston 4c812fe61b vlapic: Schedule callouts on the local CPU
The virtual LAPIC driver uses callouts to implement the LAPIC timer.
Callouts are armed using callout_reset_sbt(), which currently puts
everything on CPU 0.  On systems running many bhyve VMs this results in
a large amount of contention for CPU 0's callout lock.

Modify vlapic to schedule callouts on the local CPU instead.  This
allows timer interrupts to be scheduled more evenly among CPUs where
bhyve is running.

Reviewed by:	grehan, jhb
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D32559
2021-10-19 21:22:57 -04:00
..
amd Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
intel Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
io vlapic: Schedule callouts on the local CPU 2021-10-19 21:22:57 -04:00
vmm_dev.c vmm: Add credential to cdev object 2021-08-18 13:41:33 -04:00
vmm_host.c
vmm_host.h
vmm_instruction_emul.c Add bhyve support for LA57 guest mode. 2020-08-23 20:37:21 +00:00
vmm_ioport.c
vmm_ioport.h
vmm_ktr.h
vmm_lapic.c cpuset(9): Add CPU_FOREACH_IS(SET|CLR) and modify consumers to use it 2021-10-18 09:56:58 -04:00
vmm_lapic.h
vmm_mem.c
vmm_mem.h
vmm_snapshot.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
vmm_stat.c
vmm_stat.h amd64: clean up empty lines in .c and .h files 2020-09-01 21:16:54 +00:00
vmm_util.c Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm_util.h Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm.c vmm: Bump vmname buffer in struct vm to VM_MAX_NAMELEN + 1 2021-08-02 17:55:08 +08:00
x86.c vmm: Let guests enable SMEP/SMAP if the host supports it 2021-05-26 09:34:52 -04:00
x86.h Clear the upper 32-bits of registers in x86_emulate_cpuid(). 2020-10-01 16:45:11 +00:00