freebsd-dev/sys
Andrey V. Elsukov 699281b545 Rework locking in BPF code to remove rwlock from fast path.
On high packets rate the contention on rwlock in bpf_*tap*() functions
can lead to packets dropping. To avoid this, migrate this code to use
epoch(9) KPI and ConcurrencyKit's lists.

* all lists changed to use CK_LIST;
* reference counting added to bpf_if and bpf_d;
* now bpf_if references ifnet and releases this reference on destroy;
* each bpf_d descriptor references bpf_if when it is attached;
* new struct bpf_program_buffer introduced to keep BPF filter programs;
* bpf_program_buffer, bpf_d and bpf_if structures are freed by
  epoch_call();
* bpf_freelist and ifnet_departure event are no longer needed, thus
  both are removed;

Reviewed by:	melifaro
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D20224
2019-05-13 13:45:28 +00:00
..
amd64 amd64: tidy up pagezero*/pagecopy (movq -> movl) 2019-05-12 07:11:44 +00:00
arm arm: allwinner: aw_clk_nm: Don't reparent the clock if we didn't ask 2019-05-12 15:27:01 +00:00
arm64 arm64: rockchip: Don't always put PLL to normal mode 2019-05-10 16:45:17 +00:00
bsm
cam
cddl
compat Implement linux_pci_unregister_drm_driver in linuxkpi so that drm drivers 2019-05-10 23:10:22 +00:00
conf Fix build race with machine links and genoffset.o. 2019-05-10 18:09:27 +00:00
contrib Support the use of the ipsec kld. 2019-05-11 17:59:13 +00:00
crypto
ddb
dev twsi: Calculate the clock param based on the bus frequency 2019-05-11 15:03:51 +00:00
dts
fs
gdb
geom
gnu dts: Import files from Linux 5.1 2019-05-08 19:27:30 +00:00
i386 x86: store pending bitmapped IPIs in per-cpu areas 2019-05-12 06:36:54 +00:00
isa
kern cache: fix a brainfart in r347505 2019-05-12 07:56:01 +00:00
kgssapi
libkern random(4): depessimize arc4random 2019-05-12 06:32:46 +00:00
mips Catch up with r347241. 2019-05-13 01:18:17 +00:00
modules Revert r347402. After r347429 symlink is no longer needed. 2019-05-13 08:34:13 +00:00
net Rework locking in BPF code to remove rwlock from fast path. 2019-05-13 13:45:28 +00:00
net80211
netgraph
netinet netdump: Ref the interface we're attached to 2019-05-10 23:12:59 +00:00
netinet6 Apply r280991 to ip6_fragment. 2019-05-10 20:15:40 +00:00
netipsec
netpfil
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Add new rates to ibcore. 2019-05-08 10:55:47 +00:00
opencrypto
powerpc powerpc: Initialize the Hardware Interrupt Offset Register (HIOR) earlier for ppc970 2019-05-10 19:36:14 +00:00
riscv Add support for HiFive Unleashed -- the board with a multi-core RISC-V SoC 2019-05-12 16:17:05 +00:00
rpc
security
sparc64 Remove IPSEC from GENERIC due to performance issues 2019-05-09 22:38:15 +00:00
sys seqc: fix sed-introduced typos (seqcuence -> sequence) 2019-05-12 07:13:25 +00:00
teken
tests
tools Avoid literal @generated tag in file-generating scripts 2019-05-08 13:35:51 +00:00
ufs
vm A new parameter to blist_alloc specifies an upper bound on the size of 2019-05-11 16:15:13 +00:00
x86 x86: store pending bitmapped IPIs in per-cpu areas 2019-05-12 06:36:54 +00:00
xdr
xen
Makefile