bind9/lib/isc
alessio e1e10adc3a Switch symtab to use fxhash hashing
This merge request resolves some performance regressions introduced
with the change from isc_symtab_t to isc_hashmap_t.

The key improvements are:

1. Using a faster hash function than both isc_hashmap_t and
   isc_symtab_t. The previous implementation used SipHash, but the
   hashflood resistance properties of SipHash are unneeded for config
   parsing.
2. Shrinking the initial size of the isc_hashmap_t used inside
   isc_symtab_t. Symtab is mainly used for config parsing, and the
   when used that way it will have between 1 and ~50 keys, but the
   previous implementation initialized a map with 128 slots.
   By initializing a smaller map, we speed up mallocs and optimize for
   the typical case of few config keys.
3. Slight optimization of the string matching in the hashmap, so that
   the tail is handled in a single load + comparison, instead of byte
   by byte.
   Of the three improvements, this is the least important.
2025-03-20 11:26:09 +01:00
..
include Switch symtab to use fxhash hashing 2025-03-20 11:26:09 +01:00
netmgr DoH: Bump the active streams processing limit 2025-03-03 11:32:29 +02:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
ascii.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
assertions.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
async.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
async_p.h Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
backtrace.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
base32.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
base64.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
commandline.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
counter.c Cleanup the isc_counter unit 2025-02-21 09:51:42 +00:00
crypto.c Add the call function tracking to isc_mem API 2025-03-05 11:17:17 +01:00
dir.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
entropy.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
errno.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
errno2result.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
errno2result.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
error.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
file.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
getaddresses.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
hash.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
hashmap.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
heap.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
helper.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
hex.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
histo.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
hmac.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ht.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
httpd.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
interfaceiter.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
iterated_hash.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
jemalloc_shim.h Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
job.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
job_p.h Use proper padding instead of using alignas() 2024-02-08 10:54:35 +01:00
lex.c Remove convenience list macros from isc/util.h 2025-03-01 07:33:40 +01:00
lib.c Explicitly create and shutdown the call_rcu_thread 2025-02-22 16:19:01 +01:00
log.c clean up log module names 2024-12-11 17:11:32 +00:00
loop.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
loop_p.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
Makefile.am Switch symtab to use fxhash hashing 2025-03-20 11:26:09 +01:00
managers.c Replace isc_mem_destroy() with isc_mem_detach() 2025-03-05 11:17:17 +01:00
md.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
mem.c Add the call function tracking to isc_mem API 2025-03-05 11:17:17 +01:00
mem_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
meminfo.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
mutex.c Move the library init and shutdown to executables 2025-02-22 16:19:00 +01:00
mutex_p.h Use library constructor to create default mutex attr once 2022-07-13 13:19:32 +02:00
net.c Remove unused definition of ISC_CMSG_IP_TOS 2024-11-27 15:03:27 +01:00
netaddr.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
netscope.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
nonce.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
openssl_shim.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
openssl_shim.h Remove unused <openssl/hmac.h> headers from OpenSSL shims 2024-10-16 04:19:16 +00:00
os.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
os_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
parseint.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
picohttpparser.c Update picohttpparser.{c,h} with upstream repository 2024-12-08 11:14:37 +00:00
picohttpparser.h Update picohttpparser.{c,h} with upstream repository 2024-12-08 11:14:37 +00:00
portset.c clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
probes.d Add tracing probes to the isc_job unit 2023-08-21 18:39:53 +02:00
proxy2.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
quota.c Fix isc_quota bug 2025-02-20 10:56:00 +00:00
radix.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
random.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
ratelimiter.c Remove convenience list macros from isc/util.h 2025-03-01 07:33:40 +01:00
regex.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
region.c Incrementally apply AXFR transfer 2024-11-22 15:00:55 +01:00
result.c deduplicate result codes 2025-01-23 15:54:57 -08:00
rwlock.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
safe.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
serial.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
signal.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
sockaddr.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
stats.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
stdio.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
stdtime.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
string.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
symtab.c Switch symtab to use fxhash hashing 2025-03-20 11:26:09 +01:00
syslog.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
thread.c Explicitly create and shutdown the call_rcu_thread 2025-02-22 16:19:01 +01:00
thread_p.h Explicitly create and shutdown the call_rcu_thread 2025-02-22 16:19:01 +01:00
tid.c Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
time.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
timer.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
tls.c Remove unused isc_mutexblock and isc_condition units 2025-03-01 07:33:09 +01:00
tm.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
url.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
utf8.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
uv.c Replace isc_mem_destroy() with isc_mem_detach() 2025-03-05 11:17:17 +01:00
work.c Call isc__iterated_hash_initialize 2025-03-04 12:54:39 +00:00
xml.c Replace isc_mem_destroy() with isc_mem_detach() 2025-03-05 11:17:17 +01:00