diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2025-10-27 14:05:49 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2025-10-27 14:15:01 +0000 |
| commit | 23b46b2bbf0a8f3a740b6e5baf0767816afc339e (patch) | |
| tree | 012d45da928ae216e5d60830f2260b60a9ab96e2 /sys/modules/arm_ti | |
| parent | 09b48f811b4bf3a17485680b4720d1c0a81bbe07 (diff) | |
When system call auditing is enabled, every audited call
does a lookup in the evclass hash table. This table
appears to be insert only (eg, nothing can be removed)
and protecting it with an rwlock is overkill. Using
an rwlock causes just the atomic operations to maintain
uncontended rwlock state to be responsible for measurable
overhead on high core count servers making lots of system calls.
Given that the evclass hash table can never have items removed,
only added, using a mutex to serialize additions and converting
to ck_list allows sufficient protection for lockless lookups.
In a contrived example of 64 cores, all reading 1 byte from their
own file, this change increases performance from 5M reads/sec
to 70M reads/sec on an AMD 7502P.
Reviewed by: markj, mjg, glebius (privately)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D53176
Diffstat (limited to 'sys/modules/arm_ti')
0 files changed, 0 insertions, 0 deletions
