freebsd-dev/sys
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
..
amd64 vlapic: Schedule callouts on the local CPU 2021-10-19 21:22:57 -04:00
arm Convert consumers to vm_page_alloc_noobj_contig() 2021-10-19 21:22:56 -04:00
arm64 Use the vm_radix_init() helper when initializing pmaps 2021-10-19 21:22:56 -04:00
bsm
cam cam(4): Limit search for disks in SES enclosure by single bus 2021-10-05 15:01:16 -04:00
cddl Allow ddb and dtrace use the DMAP region on arm64 2021-10-01 11:27:33 +01:00
compat Convert consumers to vm_page_alloc_noobj_contig() 2021-10-19 21:22:56 -04:00
conf arm: allow the debug stuff in CP14 to be disabled at compile time 2021-10-18 19:18:56 +00:00
contrib vfs: remove thread argument from VOP_STAT 2021-10-11 13:22:32 +00:00
crypto crypto: Support Chacha20-Poly1305 with a nonce size of 8 bytes. 2021-10-06 14:08:49 -07:00
ddb
dev Convert consumers to vm_page_alloc_noobj_contig() 2021-10-19 21:22:56 -04:00
dts ipq4018: add a device tree file for the ASUS rt-ac58u router 2021-10-18 19:18:46 +00:00
fs Convert vm_page_alloc() callers to use vm_page_alloc_noobj(). 2021-10-19 21:22:56 -04:00
gdb
geom geom_label: Add more validation for NTFS volume tasting 2021-10-04 18:15:06 -04:00
gnu
i386 Use the vm_radix_init() helper when initializing pmaps 2021-10-19 21:22:56 -04:00
isa
kern Convert consumers to vm_page_alloc_noobj_contig() 2021-10-19 21:22:56 -04:00
kgssapi
libkern
mips Convert vm_page_alloc() callers to use vm_page_alloc_noobj(). 2021-10-19 21:22:56 -04:00
modules modules: felix: Remove etherswitch_if.c from Makefile 2021-10-01 11:24:08 +02:00
net Remove in_ifaddr_lock acquisiton to access in_ifaddrhead. 2021-10-13 10:04:46 -07:00
net80211 net80211: fix build for 526370fb85 2021-10-08 11:21:44 +00:00
netgraph ng_ppp(4): Fix a typo in a comment 2021-10-14 15:30:32 +02:00
netinet in_mcast: garbage collect inp_gcmoptions() 2021-10-18 11:36:07 -07:00
netinet6 Add in_pcb_var.h for KPIs that are private to in_pcb.c and in6_pcb.c. 2021-10-18 10:19:57 -07:00
netipsec ipsec: fix typo part2 2021-09-27 07:46:56 +02:00
netpfil pf: fix some cc --analyze warnings 2021-10-19 11:59:11 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto stand: fix build after recent opencrypto changes 2021-10-06 20:23:44 -05:00
powerpc Use the vm_radix_init() helper when initializing pmaps 2021-10-19 21:22:56 -04:00
riscv Convert consumers to vm_page_alloc_noobj_contig() 2021-10-19 21:22:56 -04:00
rpc rpc: Convert an SOLISTENING check to an assertion 2021-09-17 14:19:05 -04:00
security
sys Bump __FreeBSD_version for the preceding page allocator changes 2021-10-19 21:22:57 -04:00
teken
tests
tools ipq4018: add TCSR definitions from Linux. 2021-10-18 19:18:01 +00:00
ufs vfs: remove cn_thread 2021-10-11 13:21:47 +00:00
vm Remove some remaining references to VM_ALLOC_NOOBJ 2021-10-19 21:22:56 -04:00
x86 x86: Remove some leftover APM support 2021-10-18 09:56:59 -04:00
xdr
xen
Makefile