freebsd-skq/sys
ae 545ce709f1 Rework ipfw dynamic states implementation to be lockless on fast path.
o added struct ipfw_dyn_info that keeps all needed for ipfw_chk and
  for dynamic states implementation information;
o added DYN_LOOKUP_NEEDED() macro that can be used to determine the
  need of new lookup of dynamic states;
o ipfw_dyn_rule now becomes obsolete. Currently it used to pass
  information from kernel to userland only.
o IPv4 and IPv6 states now described by different structures
  dyn_ipv4_state and dyn_ipv6_state;
o IPv6 scope zones support is added;
o ipfw(4) now depends from Concurrency Kit;
o states are linked with "entry" field using CK_SLIST. This allows
  lockless lookup and protected by mutex modifications.
o the "expired" SLIST field is used for states expiring.
o struct dyn_data is used to keep generic information for both IPv4
  and IPv6;
o struct dyn_parent is used to keep O_LIMIT_PARENT information;
o IPv4 and IPv6 states are stored in different hash tables;
o O_LIMIT_PARENT states now are kept separately from O_LIMIT and
  O_KEEP_STATE states;
o per-cpu dyn_hp pointers are used to implement hazard pointers and they
  prevent freeing states that are locklessly used by lookup threads;
o mutexes to protect modification of lists in hash tables now kept in
  separate arrays. 65535 limit to maximum number of hash buckets now
  removed.
o Separate lookup and install functions added for IPv4 and IPv6 states
  and for parent states.
o By default now is used Jenkinks hash function.

Obtained from:	Yandex LLC
MFC after:	42 days
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D12685
2018-02-07 18:59:54 +00:00
..
amd64 Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
arm Cull Atmel board configs no longer relevant. 2018-02-07 18:33:53 +00:00
arm64 Only promote userspace mappings to superpages. This was dropped in r328510, 2018-02-01 14:26:26 +00:00
bsm sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cam Fix cut and pasted comments to reflect differences in code from the 2018-02-07 18:33:46 +00:00
cddl Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
compat Fix implementation of ktime_add_ns() and ktime_sub_ns() in the LinuxKPI to 2018-02-07 12:12:06 +00:00
conf Rework ipfw dynamic states implementation to be lockless on fast path. 2018-02-07 18:59:54 +00:00
contrib MFV r328490: Update libfdt to github:f1879e1 2018-01-27 21:25:45 +00:00
crypto ccp(4): Store IV in output buffer in GCM software fallback when requested 2018-01-27 07:41:31 +00:00
ddb Implement 'domainset', a cpuset based NUMA policy mechanism. This allows 2018-01-12 22:48:23 +00:00
dev Give USB template SYSUNINIT()'s a uniq name to avoid symbol name collision 2018-02-07 18:46:08 +00:00
dts Add a skeleton Clock Manager for RPi2/3, and use that from pwm 2018-01-22 07:10:30 +00:00
fs {ext2|ufs}_readdir: Avoid setting negative ncookies. 2018-02-06 22:38:19 +00:00
gdb sys/gdb: further adoption of SPDX licensing ID tags. 2017-11-27 15:16:59 +00:00
geom Simplify synchronization read error handling. 2018-02-06 16:02:33 +00:00
gnu bwn(4): migrate bwn(4) to the native bhnd(9) interface, and drop siba_bwn. 2018-02-05 23:38:15 +00:00
i386 Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
isa Add ISA PNP tables to ISA drivers. Fix a few incidental comments. 2018-01-29 00:22:30 +00:00
kern Fix three miscalculations in amount of boot pages: 2018-02-07 18:32:51 +00:00
kgssapi sys/kgssapi: general adoption of SPDX licensing ID tags. 2017-11-27 15:49:00 +00:00
libkern SPDX: fix wrong license ID tag in libkern. 2017-12-28 01:20:30 +00:00
mips Fix compilation of mips_postboot_fixup() with a C11 compiler 2018-02-07 16:58:01 +00:00
modules Rework ipfw dynamic states implementation to be lockless on fast path. 2018-02-07 18:59:54 +00:00
net BPF: Switch to 32 bit compatible mode only when thread is 32 bit 2018-01-25 12:13:41 +00:00
net80211 net80211: sanitize input for ieee80211_output() 2017-12-30 00:40:34 +00:00
netgraph Revert r327828, r327949, r327953, r328016-r328026, r328041: 2018-01-21 15:42:36 +00:00
netinet Rework ipfw dynamic states implementation to be lockless on fast path. 2018-02-07 18:59:54 +00:00
netinet6 Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
netipsec Adopt revision 1.76 and 1.77 from NetBSD: 2018-01-24 19:48:25 +00:00
netpfil Rework ipfw dynamic states implementation to be lockless on fast path. 2018-02-07 18:59:54 +00:00
netsmb Unsign some values related to allocation. 2018-01-22 02:08:10 +00:00
nfs Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
nfsclient style: Remove remaining deprecated MALLOC/FREE macros 2018-01-25 22:25:13 +00:00
nfsserver sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nlm Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
ofed sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
opencrypto Move per-operation data out of the csession structure. 2018-01-26 23:21:50 +00:00
powerpc Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
riscv Remove SFBUF_OPTIONAL_DIRECT_MAP and such hacks, replacing them across the 2018-01-19 17:46:31 +00:00
rpc Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
security Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
sparc64 Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
sys Use const pointers for input data not modified by clock utility functions. 2018-02-06 22:17:01 +00:00
teken sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tests
tools Avoid using \$. It's an unknown escape sequence. Some awks warn about 2018-01-28 05:13:08 +00:00
ufs {ext2|ufs}_readdir: Avoid setting negative ncookies. 2018-02-06 22:38:19 +00:00
vm Fix three miscalculations in amount of boot pages: 2018-02-07 18:32:51 +00:00
x86 Expand IBRS TLA in sysctl help lines. 2018-01-31 16:54:05 +00:00
xdr sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
xen sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
Makefile Move sys/boot to stand. Fix all references to new location 2017-11-14 23:02:19 +00:00