freebsd-src/sys
Andrew Gallatin 542970fa2d Remove IPSEC from GENERIC due to performance issues
Having IPSEC compiled into the kernel imposes a non-trivial
performance penalty on multi-threaded workloads due to IPSEC
refcounting. In my benchmarks of multi-threaded UDP
transmit (connected sockets), I've seen a roughly 20% performance
penalty when the IPSEC option is included in the kernel (16.8Mpps
vs 13.8Mpps with 32 senders on a 14 core / 28 HTT Xeon
2697v3)). This is largely due to key_addref() incrementing and
decrementing an atomic reference count on the default
policy. This cause all CPUs to stall on the same cacheline, as it
bounces between different CPUs.

Given that relatively few users use ipsec, and that it can be
loaded as a module, it seems reasonable to ask those users to
load the ipsec module so as to avoid imposing this penalty on the
GENERIC kernel. Its my hope that this will make FreeBSD look
better in "out of the box" benchmark comparisons with other
operating systems.

Many thanks to ae for fixing auto-loading of ipsec.ko when
ifconfig tries to configure ipsec, and to cy for volunteering
to ensure the the racoon ports will load the ipsec.ko module

Reviewed by:	cem, cy, delphij, gnn, jhb, jpaetzel
Differential Revision:	https://reviews.freebsd.org/D20163
2019-05-09 22:38:15 +00:00
..
amd64 Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
arm Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
arm64 Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
bsm Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
cam Drop periph lock around cam_periph_unmapmem(). 2019-05-06 19:08:03 +00:00
cddl Add mutex_destroy() missed in r334844. 2019-04-26 19:02:21 +00:00
compat Fix memory leak of PCI BUS structure in the LinuxKPI. 2019-05-09 10:23:42 +00:00
conf Connect Xilinx AXI drivers and Cadence Ethernet MAC to the RISC-V build. 2019-05-08 16:06:54 +00:00
contrib Move contrib/zlib to sys/contrib/zlib so that we can use it in kernel. 2019-05-08 08:43:15 +00:00
crypto Embedded chacha: Add 0-bit iv + 128-bit counter mode 2019-03-01 23:30:23 +00:00
ddb ddb: Print the thread's pcb in 'show thread' 2019-02-09 21:08:19 +00:00
dev rename nvme_ctrlr_destroy_qpair to nvme_ctrlr_destroy_qpairs 2019-05-08 20:18:11 +00:00
dts arm64: Add support for NanoPI NEO2 2019-05-02 12:56:13 +00:00
fs Do not flush NFS node from NFS VOP_SET_TEXT(). 2019-05-06 08:49:43 +00:00
gdb
geom List-ify kernel dump device configuration 2019-05-06 18:24:07 +00:00
gnu dts: Import files from Linux 5.1 2019-05-08 19:27:30 +00:00
i386 Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
isa Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
kern Reduce umtx-related work on exec and exit 2019-05-08 16:30:38 +00:00
kgssapi * Handle SIGPIPE in gssd 2019-02-21 01:30:37 +00:00
libkern Revert r346410 and r346411 2019-04-19 22:08:17 +00:00
mips tun/tap: merge and rename to tuntap 2019-05-08 02:32:11 +00:00
modules Add if_ipsec.ko symlink to ipsec.ko kernel module. 2019-05-09 18:06:11 +00:00
net tuntap: Don't down tap interfaces if LINK0 is set 2019-05-09 18:54:29 +00:00
net80211 net80211: correct check for SMPS node flags updates 2019-03-18 02:40:22 +00:00
netgraph Remove 'dir' argument in ng_ipfw_input, since ip_fw_args now has this info. 2019-03-14 22:30:05 +00:00
netinet Don't use C++ style comments. 2019-05-09 21:00:15 +00:00
netinet6 In mld_v2_cancel_link_timers() check number of references and disconnect 2019-05-09 07:57:33 +00:00
netipsec Replace read_random(9) with more appropriate arc4rand(9) KPIs 2019-04-04 01:02:50 +00:00
netpfil Add IPv6 support for O_IPLEN opcode. 2019-04-29 09:33:16 +00:00
netsmb Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfs
nfsclient
nfsserver
nlm
ofed Add new rates to ibcore. 2019-05-08 10:55:47 +00:00
opencrypto Don't panic for empty CCM requests. 2019-04-24 23:27:39 +00:00
powerpc Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
riscv Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
rpc Fix malloc stats for the RPCSEC_GSS server code when DEBUG is enabled. 2019-04-04 01:23:06 +00:00
security When MAC is enabled and a policy module is loaded, don't unconditionally 2019-05-03 20:38:43 +00:00
sparc64 Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
sys Mark inline functions with __unused; prevents compiler warning 2019-05-08 18:47:00 +00:00
teken Attempt to complete fixing programmable function keys for syscons. 2019-02-20 02:14:41 +00:00
tests Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
tools Avoid literal @generated tag in file-generating scripts 2019-05-08 13:35:51 +00:00
ufs Ensure that error is initialized in ufs_bmap_seekdata(). 2019-05-05 16:57:03 +00:00
vm Noted by: alc 2019-05-06 08:46:11 +00:00
x86 amd64: fix BUS_SPACE_MAXSIZE to 64bit max value. 2019-05-07 01:18:57 +00:00
xdr
xen xen: introduce a new way to setup event channel upcall 2019-01-30 11:34:52 +00:00
Makefile