bind9/lib
Ondřej Surý cb0db600e7
Replace some ADB entry locking with atomics to reduce ADB contention
Use atomics on couple of ADB entry members (.srtt, .flags, .expires, and
.lastage) to remove ADB entry locking from couple of hot spots.  The
most prominent place is copy_namehook_lists() that gets called under ADB
name lock and if the namehook list is long it acquires-releases quite a
few ADB entry locks.  Changing those ADB entry members to atomics
allowed us to new_adbaddrinfo() not require locked ADB entry and since
adbentry_overquota() already used atomics and handling lame information
was dropped in the previous commit, we could not make the
copy_namehook_lists() lockless.

The other hotspot is dns_adb_adjustsrtt() and dns_adb_agesrtt() that can
now use atomics because .srtt is already atomic_uint.

And the last place that could now use atomics is dns_adb_changeflags().
2023-10-12 12:35:00 +02:00
..
dns Replace some ADB entry locking with atomics to reduce ADB contention 2023-10-12 12:35:00 +02:00
isc Improve isc_refcount with initializer and implicit destroy 2023-09-24 10:08:56 +02:00
isccc Limit isccc_cc_fromwire recursion depth 2023-09-07 19:46:19 +02:00
isccfg Detect duplicate use of control sockets in named.conf 2023-10-05 11:32:01 +11:00
ns Remove unnecessary NULL-checks in ns__client_setup() 2023-09-28 13:43:18 +00:00
.gitignore The isc/platform.h header has been completely removed 2021-07-06 05:33:48 +00:00
Makefile.am Move irs_resconf into libdns and remove libirs 2023-02-24 09:38:59 +00:00