freebsd-dev/sys
Marko Zec 43880c511c [fib_algo][dxr] Split unused range chunk list in multiple buckets
Traversing a single list of unused range chunks in search for a block
of optimal size was suboptimal.

The experience with real-world BGP workloads has shown that on average
unused range chunks are tiny, mostly in length from 1 to 4 or 5, when
DXR is configured with K = 20 which is the current default (D16X4R).

Therefore, introduce a limited amount of buckets to accomodate descriptors
of empty blocks of fixed (small) size, so that those can be found in O(1)
time.  If no empty chunks of the requested size can be found in fixed-size
buckets, the search continues in an unsorted list of empty chunks of
variable lengths, which should only happen infrequently.

This change should permit us to manage significantly more empty range
chunks without sacrifying the speed of incremental range table updating.

MFC after:	3 days
2021-09-25 06:29:48 +02:00
..
amd64 Revert "linux32: add a hack to avoid redefining the type of the savefpu tag" 2021-09-22 23:17:47 +03:00
arm arm: Handle thumb2 thread entry point. 2021-09-21 23:20:27 +02:00
arm64 arm64: Handle thumb2 thread entry point. 2021-09-21 23:20:27 +02:00
bsm Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
cam libcam: Define depop structures and introduce scsi_wrap 2021-09-20 16:27:59 -06:00
cddl kern: drop remaining references to removed makesyscalls.sh 2021-09-09 19:40:54 -05:00
compat Drop cloudabi 2021-09-22 00:18:44 +03:00
conf Drop cloudabi 2021-09-22 00:18:44 +03:00
contrib ipfilter: Locking sysctls here is not required 2021-09-24 11:41:02 -07:00
crypto crypto(4): Fix a few typos in camellia.c 2021-09-04 13:02:11 +02:00
ddb Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dev Make CPU children explicitly share parent unit numbers. 2021-09-24 23:31:51 -04:00
dts Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
fs unionfs: lock newly-created vnodes before calling insmntque() 2021-09-23 19:20:30 -07:00
gdb
geom g_label: Handle small sector sizes when tasting 2021-09-07 11:19:29 -04:00
gnu
i386 Drop cloudabi 2021-09-22 00:18:44 +03:00
isa
kern Make CPU children explicitly share parent unit numbers. 2021-09-24 23:31:51 -04:00
kgssapi
libkern libkern: remove bcopy 2021-08-24 11:24:07 +00:00
mips Fix a common typo in source code comments 2021-09-04 12:56:57 +02:00
modules Revert "linux32: add a hack to avoid redefining the type of the savefpu tag" 2021-09-22 23:17:47 +03:00
net pf: support dummynet 2021-09-24 11:41:25 +02:00
net80211 net80211: add func/line information to IEEE80211_DISCARD* macros 2021-09-04 09:24:51 +00:00
netgraph ng_l2tp: improve callout locking. 2021-09-10 11:27:19 -07:00
netinet [fib_algo][dxr] Split unused range chunk list in multiple buckets 2021-09-25 06:29:48 +02:00
netinet6 sctp: Tighten up locking around sctp_aloc_assoc() 2021-09-11 10:15:21 -04:00
netipsec ipsec: Add support for PMTUD for IPv6 tunnels 2021-09-24 10:27:21 +02:00
netpfil pf: support dummynet 2021-09-24 11:41:25 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto opencrypto: Disallow requests which pass VERIFY_DIGEST without a MAC 2021-09-24 15:04:45 -04:00
powerpc powerpc64: fix radix on pseries TLB invalidation 2021-09-08 08:37:11 -03:00
riscv sifive_spi: Add missing case for SPIBUS_MODE_NONE 2021-08-30 23:38:02 +01:00
rpc rpc: Convert an SOLISTENING check to an assertion 2021-09-17 14:19:05 -04:00
security Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
sys bus: retire DF_REBID 2021-09-24 12:15:34 -06:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools makesyscalls: sprinkle some assert() on standard function calls 2021-09-24 20:55:56 -05:00
ufs Eliminate snaplk / bufwait LOR when creating UFS snapshots 2021-09-18 17:02:30 -07:00
vm vm_page_startup: correct calculation of the starting page 2021-09-19 21:27:55 +03:00
x86 Make CPU children explicitly share parent unit numbers. 2021-09-24 23:31:51 -04:00
xdr
xen xen: introduce xen_pv_disks_disabled() 2021-07-28 17:27:04 +02:00
Makefile