bind9/lib/dns/include/dns
Alessio Podda ed0ecb62e4 Add low contention stats counter
In the current statistics counter implementation, the statistics are
backed by an array of counters, which are updated via atomic operations.
This leads to contention, especially on high core count
machines.

This commit introduces a new isc_statsmulti_t counter that keeps a
separate array per thread. These counters are then aggregated only when
statistics are queried, shifting work off the critical path.

These changes lead to a ~2% improvement in perflab.
2026-03-26 10:19:25 +01:00
..
acl.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
adb.h fetch loop detection improvements 2026-02-11 14:07:19 +01:00
badcache.h Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
bit.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
byaddr.h add API to parse and extract IP from PTR name 2025-10-01 12:16:05 +02:00
cache.h Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
callbacks.h Abstract updates into a vtable 2025-12-09 12:55:30 +01:00
catz.h Lock the catalog zone when reconfiguring it 2025-12-17 14:54:49 +00:00
cert.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
client.h Add switch to disable cookie checking in delv 2026-03-26 11:18:26 +11:00
clientinfo.h Update broken reference to dlz_minimal.h 2025-07-17 07:17:12 +02:00
compress.h remove the 'name_coff' parameter in dns_name_towire() 2025-02-25 12:53:25 -08:00
db.h Fix formatting 2025-12-09 13:32:24 +01:00
dbiterator.h Implement dns_dbiterator_seek3 2025-12-10 14:18:52 +01:00
diff.h Fix formatting 2025-12-09 13:32:24 +01:00
dispatch.h Refactor the network manager to be a singleton 2025-07-23 22:45:38 +02:00
dlz.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dlz_dlopen.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dns64.h move application of dns64 to a separate function 2025-03-26 23:30:38 +00:00
dnssec.h Update dns_dnssec_sync(update|delete) return code 2025-12-19 14:08:15 +01:00
dnstap.h Convert dns_dtenv_t reference counting to standard macors 2026-03-18 16:10:07 +00:00
ds.h Update dns_dnssec_sync(update|delete) return code 2025-12-19 14:08:15 +01:00
dsdigest.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
dsync.h Add support for parsing DSYNC scheme mnemonics 2025-08-05 17:27:44 +10:00
dyndb.h Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
ecs.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ede.h add dns_message API to add EDNS options 2025-11-21 11:13:18 -08:00
edns.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
fixedname.h Remove offsets from the dns_name and dns_fixedname structures 2025-02-25 12:17:34 +01:00
forward.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
geoip.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ipkeylist.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
iptable.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
journal.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
kasp.h Refactor dns_kasp_attach/detach 2026-01-23 09:59:52 +00:00
keydata.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
keyflags.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
keymgr.h Change output of rndc dnssec -status 2025-11-28 15:32:17 +01:00
keystore.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
keytable.h pass isc_buffer_t pointers when applicable 2025-11-28 18:47:49 +00:00
keyvalues.h Tidy up keyvalue.h definitions 2025-03-25 06:38:25 +00:00
lib.h document usage of BIND9 constructors/destructors 2025-12-04 16:09:40 +01:00
master.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
masterdump.h simplify dns_dumpctx API 2025-10-20 17:48:18 -07:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00
message.h Use clang-format-22 to update formatting 2026-03-04 10:56:41 +01:00
name.h Share reverse (ARPA) domain names 2025-10-01 12:16:05 +02:00
nametree.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ncache.h simplify dns_ncache_add() 2025-08-05 12:16:36 +02:00
notify.h Change zone set/get options related to notify 2025-12-29 09:43:04 +01:00
nsec.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
nsec3.h Enforce NSEC3 record consistency 2026-02-24 14:57:22 +01:00
nta.h pass isc_buffer_t pointers when applicable 2025-11-28 18:47:49 +00:00
opcode.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
order.h Convert DNS_RDATASETATTR_ bitfield manipulation to struct of bools 2025-07-10 11:17:19 +02:00
peer.h Add option request-zoneversion 2025-03-24 22:16:09 +00:00
private.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
qp.h Fix formatting after refactor 2025-12-10 11:28:10 +01:00
rcode.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
rdata.h Add dns_rdatatype_isnsec() helper function 2025-08-15 07:22:52 +02:00
rdataclass.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
rdatalist.h dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
rdataset.h dns_rdataset_* const parameters 2026-01-30 19:33:42 +01:00
rdatasetiter.h add DNS_DBITERATOR_FOREACH and DNS_RDATASETITER_FOREACH 2025-05-27 21:08:09 -07:00
rdataslab.h Move the count of items in the slabheader from raw data to struct 2026-02-18 14:29:16 +01:00
rdatatype.h remove unused warning if DNS_TYPEPAIR_CHECK is off 2025-08-18 13:26:50 +02:00
rdatavec.h Unpack struct vecheader 2025-12-16 17:30:46 +01:00
remote.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
request.h Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
resolver.h Add low contention stats counter 2026-03-26 10:19:25 +01:00
result.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
rootns.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
rpz.h Implement '-T slowrpz' named testing option 2025-08-22 16:31:17 +00:00
rriterator.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
rrl.h Use clang-format-21 to update formatting 2025-10-21 09:34:29 +02:00
sdlz.h Use clang-format-22 to update formatting 2026-03-04 10:56:41 +01:00
secalg.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
secproto.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
skr.h Use archived version of draft-icann-dnssec-keymgmt-01.txt 2025-01-28 12:13:57 +01:00
soa.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
ssu.h clean up uses of ISC_R_NOMEMORY 2025-01-23 15:54:57 -08:00
stats.h Add low contention stats counter 2026-03-26 10:19:25 +01:00
time.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
tkey.h Remove "tkey-gssapi-credential" and related code 2025-10-06 13:19:50 +02:00
trace.h Replace __attribute__((unused)) with ISC_ATTR_UNUSED attribute macro 2023-03-30 23:29:25 +02:00
transport.h report client transport in 'rndc recursing' 2024-10-14 12:59:52 -07:00
tsig.h Prevent assertion when processing TSIG algorithm 2025-05-08 22:45:48 +02:00
ttl.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
types.h Don't verify already trusted rdatasets 2026-03-13 13:03:33 +01:00
unreachcache.h Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
update.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
validator.h Fail DNSKEY validation when supported but invalid DS is found 2026-02-23 11:34:43 +01:00
view.h Remove NZF support, make LMDB required for new zone storage 2026-03-18 11:02:33 +01:00
xfrin.h Expose the incoming transfers' rates in the statistics channel 2025-02-20 09:32:55 +00:00
zone.h Add low contention stats counter 2026-03-26 10:19:25 +01:00
zonefetch.h Tidy up (fixed)names in dsyncfetch_start 2025-12-22 13:31:09 +11:00
zoneverify.h Remove C++ support from the public header 2024-12-18 13:10:39 +01:00
zt.h Remove unused dns_view_load() and dns_zt_load() 2026-02-12 13:43:13 +00:00