freebsd-dev/sys
Alexander V. Chernikov 6b8ef0d428 Add batched update support for the fib algo.
Initial fib algo implementation was build on a very simple set of
 principles w.r.t updates:

1) algorithm is ether able to apply the change synchronously (DIR24-8)
 or requires full rebuild (bsearch, lradix).
2) framework falls back to rebuild on every error (memory allocation,
 nhg limit, other internal algo errors, etc).

This changes brings the new "intermediate" concept - batched updates.
Algotirhm can indicate that the particular update has to be handled in
 batched fashion (FLM_BATCH).
The framework will write this update and other updates to the temporary
 buffer instead of pushing them to the algo callback.
Depending on the update rate, the framework will batch 50..1024 ms of updates
 and submit them to a different algo callback.

This functionality is handy for the slow-to-rebuild algorithms like DXR.

Differential Revision:	https://reviews.freebsd.org/D29588
Reviewed by:	zec
MFC after:	2 weeks
2021-04-14 23:54:11 +01:00
..
amd64 amd64: Add MD bits for KASAN 2021-04-13 17:42:20 -04:00
arm arm: Add no-cftconvert for sdma-imx6 files 2021-04-14 15:43:37 +02:00
arm64 arm64: adjust comments in dbg_monitor_exit() 2021-04-13 14:41:31 -03:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam cam: make sure to clear even more CCBs allocated on the stack 2021-04-11 15:24:22 +01:00
cddl fbt: Remove some handling for multiple CTF containers 2021-04-02 17:49:13 -04:00
compat linux: implement O_PATH 2021-04-15 15:30:59 +01:00
conf Add the KASAN runtime 2021-04-13 17:42:20 -04:00
contrib zfs: merge openzfs/zfs@3522f57b6 (master) 2021-04-14 12:51:51 +02:00
crypto ossl: Don't encryt/decrypt too much data for chacha20. 2021-04-01 15:49:07 -07:00
ddb ddb: replace watchpoint set/clear functions 2021-03-29 12:05:44 -03:00
dev e1000: Restore VF interface random MAC 2021-04-15 11:45:02 -07:00
dts dts: Bump the freebsd branding version to 5.10 2021-03-23 15:02:21 +01:00
fs pseudofs: limit writes to 1M 2021-04-14 10:23:21 +03:00
gdb gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
geom gmirror: Pre-allocate the timeout event structure 2021-03-11 15:45:15 -05:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
isa Remove more remnants of sio(4) 2021-04-07 14:33:02 -04:00
kern O_PATH: allow vnode kevent filter on such files 2021-04-15 12:49:18 +03:00
kgssapi opencrypto: Introduce crypto_dispatch_async() 2021-02-08 09:19:19 -05:00
libkern x86: remove gcov kernel support 2021-04-02 15:41:51 +03:00
mips OCF: Remove support for asymmetric cryptographic operations. 2021-04-12 14:28:43 -07:00
modules hidmap: add missing opt_hid.h to module Makefile 2021-04-14 23:05:59 +03:00
net Add batched update support for the fib algo. 2021-04-14 23:54:11 +01:00
net80211 net80211: prefix get_random_bytes() with net80211_ 2021-03-24 22:16:09 +00:00
netgraph ng_ubt: Block attachment of uninitialized Intel Wireless 7265 2021-04-15 17:26:32 +03:00
netinet TOE: Use a read lock on the PCB for syncache_add(). 2021-04-13 16:31:04 -07:00
netinet6 tcp_input/syncache: acquire only read lock on PCB for SYN,!ACK packets 2021-04-12 08:25:31 -07:00
netipsec Revert "SO_RERROR indicates that receive buffer overflows should be handled as errors." 2021-02-08 22:32:32 +00:00
netpfil pf: Implement the NAT source port selection of MAP-E Customer Edge 2021-04-13 10:53:18 +02:00
netsmb
nfs Fix panic when using BOOTP to resolve root path. 2021-03-28 14:02:40 -05:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed LinuxKPI/OFED: (re)move inetdevice.h implementation 2021-03-30 14:40:46 +00:00
opencrypto OCF: Remove support for asymmetric cryptographic operations. 2021-04-12 14:28:43 -07:00
powerpc Rename struct device to struct _device 2021-04-12 09:32:30 -04:00
riscv ddb: replace watchpoint set/clear functions 2021-03-29 12:05:44 -03:00
rpc nfsv4 client: do the BindConnectionToSession as required 2021-04-11 14:34:57 -07:00
security tcp_input/syncache: acquire only read lock on PCB for SYN,!ACK packets 2021-04-12 08:25:31 -07:00
sys O_PATH: allow vnode kevent filter on such files 2021-04-15 12:49:18 +03:00
teken loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
tests Add IPv4 fib lookup performance tests with uniform keys. 2021-03-30 14:32:28 +01:00
tools syscalls.master: Add a new syscall type: RESERVED 2021-01-26 18:27:44 +00:00
ufs b_vflags update requries bufobj lock 2021-04-15 15:47:42 +03:00
vm uma: Introduce per-domain reclamation functions 2021-04-14 13:03:34 -04:00
x86 amd64: Add MD bits for KASAN 2021-04-13 17:42:20 -04:00
xdr
xen xen: move x86-specific xen_vector_callback_enabled to sys/x86 2021-03-15 14:20:21 +01:00
Makefile