1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-15 15:06:42 +00:00
freebsd/sys
Kristof Provost 4fc65bcbe3 pfsync: Performance improvement
pfsync code is called for every new state, state update and state
deletion in pf. While pf itself can operate on multiple states at the
same time (on different cores, assuming the states hash to a different
hashrow), pfsync only had a single lock.
This greatly reduced throughput on multicore systems.

Address this by splitting the pfsync queues into buckets, based on the
state id. This ensures that updates for a given connection always end up
in the same bucket, which allows pfsync to still collapse multiple
updates into one, while allowing multiple cores to proceed at the same
time.

The number of buckets is tunable, but defaults to 2 x number of cpus.
Benchmarking has shown improvement, depending on hardware and setup, from ~30%
to ~100%.

MFC after:	1 week
Sponsored by:	Orange Business Services
Differential Revision:	https://reviews.freebsd.org/D18373
2018-12-06 19:27:15 +00:00
..
amd64 Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
arm Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
arm64 Build the dtb for the rock64 board. 2018-12-02 19:36:20 +00:00
bsm
cam NVME trim clocking 2018-11-27 00:36:35 +00:00
cddl zfs: we can boot from dataset with large_dnode enabled 2018-12-03 19:35:21 +00:00
compat Remove redundant declaration after r341517. 2018-12-05 15:56:44 +00:00
conf Fix LINT build after r341572. 2018-12-05 15:42:31 +00:00
contrib sx: retire SX_NOADAPTIVE 2018-12-05 16:43:03 +00:00
crypto
ddb
dev Appease gcc build, remove duplicated declaration. 2018-12-06 19:20:00 +00:00
dts arm64: allwinner: Add 792Mhz frequency to sun50i-a64-opp 2018-11-30 10:31:30 +00:00
fs Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
gdb
geom Normally when an attempt is made to mount a UFS/FFS filesystem whose 2018-12-06 00:09:39 +00:00
gnu
i386 Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
isa
kern Let kern.trap_enotcap be set as a tunable. 2018-12-06 17:29:37 +00:00
kgssapi
libkern
mips Add CAPABILITIES to the ERL kernel config so that tools that have been 2018-11-28 13:25:10 +00:00
modules mlx5fpga_tools initial code import. 2018-12-05 14:17:22 +00:00
net netmap.h: include stdatomic.h 2018-12-05 15:38:52 +00:00
net80211
netgraph ng_source(4): correction after the change r340617 2018-11-27 04:05:38 +00:00
netinet Clamp the INPCB port hash tables to IPPORT_MAX + 1 chains. 2018-12-05 17:06:00 +00:00
netinet6 Clamp the INPCB port hash tables to IPPORT_MAX + 1 chains. 2018-12-05 17:06:00 +00:00
netipsec
netpfil pfsync: Performance improvement 2018-12-06 19:27:15 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed ipoib: Notify on modify QP failure only when relevant 2018-12-05 13:27:17 +00:00
opencrypto
powerpc powerpc: Set very low priority mode while waiting for AP unleash event 2018-12-06 04:36:02 +00:00
riscv Fix reporting of SS_ONSTACK 2018-11-30 22:44:33 +00:00
rpc
security audit: predict AUDITING_TD as false 2018-11-29 09:19:48 +00:00
sparc64 Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
sys sx: retire SX_NOADAPTIVE 2018-12-05 16:43:03 +00:00
teken
tests
tools
ufs If the vfs.ffs.dotrimcons sysctl option is enabled while a file 2018-12-06 01:04:56 +00:00
vm Normalize COMPAT_43 syscall declarations. 2018-12-04 16:48:47 +00:00
x86
xdr
xen
Makefile