opnsense-src/sys/amd64/include
Andrew Gallatin 1cac76c93f vm: reduce lock contention when processing vm batchqueues
Rather than waiting until the batchqueue is full to acquire the lock &
process the queue, we now start trying to acquire the lock using trylocks
when the batchqueue is 1/2 full. This removes almost all contention on the
vm pagequeue mutex for for our busy sendfile() based web workload.
It also greadly reduces the amount of time a network driver ithread
remains blocked on a mutex, and eliminates some packet drops under
heavy load.

So that the system does not loose the benefit of processing large
batchqueues, I've doubled the size of the batchqueues. This way, when
there is no contention, we process the same batch size as before.

This has been run for several months on a busy Netflix server, as well
as on my personal desktop.

Reviewed by: markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D37305
2022-12-14 14:34:07 -05:00
..
pc smbios: Move smbios driver out from x86 machdep code 2021-02-23 21:17:09 +00:00
xen xen: Prevent buffer overflow in privcmd ioctl 2022-05-06 09:31:32 +02:00
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h
acpica_machdep.h
apm_bios.h
asan.h kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
asm.h amd64: -m32 support for machine/asm(macros).h 2022-06-13 18:35:39 +01:00
asmacros.h elfnote: place note in a PT_NOTE program header 2022-06-28 09:51:57 +02:00
atomic.h amd64: -m32 support for machine/atomic.h 2022-06-13 18:35:39 +01:00
bus.h
bus_dma.h
clock.h x86: Deduplicate clock.h 2021-12-06 10:39:08 -05:00
counter.h amd64: -m32 support for machine/counter.h 2022-06-13 18:35:40 +01:00
cpu.h Simplify swi for bus_dma. 2021-12-28 13:51:25 -08:00
cpufunc.h amd64: -m32 support for machine/cpufunc.h 2022-06-13 18:35:38 +01:00
cputypes.h
csan.h Limit when we call DELAY from KCSAN on amd64 2021-02-25 12:38:05 +00:00
db_machdep.h Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dump.h
efi.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
elf.h
endian.h
exec.h
fdt.h
float.h
floatingpoint.h
fpu.h Add domain policy allocation for amd64 fpu_kern_ctx 2020-07-03 14:54:46 +00:00
frame.h amd64: centralize definitions of CS_SECURE and EFL_SECURE 2021-09-21 20:20:14 +03:00
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
ieeefp.h Remove checks for __GNUCLIKE_ASM assuming it is always true. 2022-04-12 10:05:45 -07:00
in_cksum.h machine/in_cksum.h: don't include sys/cdefs.h 2022-04-18 21:02:19 +01:00
intr_machdep.h amd64: Make it easier to configure exception stack sizes 2020-11-04 16:42:20 +00:00
iodev.h
iommu.h o Add machine/iommu.h and include MD iommu headers from it, 2020-08-05 19:11:31 +00:00
kdb.h x86: implement kdb watchpoint functions 2021-03-29 12:05:43 -03:00
limits.h Remove checks for __CC_SUPPORTS_WARNING assuming it is always true. 2022-04-12 10:06:13 -07:00
md_var.h kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
memdev.h Add the MEM_EXTRACT_PADDR ioctl to /dev/mem. 2020-09-02 18:12:47 +00:00
metadata.h
minidump.h Sparsify the vm_page_dump bitmap 2020-09-21 22:21:59 +00:00
msan.h Add the KMSAN runtime 2021-08-10 21:27:53 -04:00
nexusvar.h
npx.h
ofw_machdep.h
param.h amd64: Populate the KMSAN shadow maps and integrate with the VM 2021-08-10 21:27:53 -04:00
pcb.h Fix for mis-interpretation of PCB_KERNFPU. 2020-10-14 23:01:41 +00:00
pci_cfgreg.h
pcpu.h amd64: -m32 support for machine/pcpu.h 2022-06-13 18:35:40 +01:00
pcpu_aux.h amd64: -m32 support for machine/pcpu_aux.h 2022-06-13 18:35:40 +01:00
pmap.h sys: Consolidate common implementation details of PV entries. 2022-10-07 10:14:03 -07:00
pmc_mdep.h
ppireg.h
proc.h amd64: -m32 support for machine/proc.h 2022-06-13 18:35:39 +01:00
procctl.h
profile.h amd64: -m32 support for machine/profile.h 2022-06-13 18:35:39 +01:00
psl.h
ptrace.h
pvclock.h
reg.h
reloc.h
resource.h
runq.h
segments.h amd64: -m32 support for machine/segments.h 2022-06-13 18:35:39 +01:00
setjmp.h
sf_buf.h amd64: -m32 support for machine/sb_buf.h 2022-06-13 18:35:39 +01:00
sgx.h
sgxreg.h
sigframe.h
signal.h
smp.h amd64: rework AP startup 2021-07-27 20:11:15 +03:00
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h
tls.h Add <machine/tls.h> header to hold MD constants and helpers for TLS. 2021-12-09 13:17:13 -08:00
trap.h
tss.h
ucontext.h
vdso.h
vm.h Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
vmm.h vmm: Remove stale comment for vm_rendezvous. 2022-11-30 13:06:46 -08:00
vmm_dev.h vmm: Don't lock a vCPU for VM_PPTDEV_MSI[X]. 2022-12-09 10:26:23 -08:00
vmm_instruction_emul.h vmm: Use struct vcpu in the instruction emulation code. 2022-11-18 10:25:37 -08:00
vmm_snapshot.h bhyve: Drop volatile qualifiers from snapshot code 2022-11-11 10:02:26 -05:00
vmparam.h vm: reduce lock contention when processing vm batchqueues 2022-12-14 14:34:07 -05:00