diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2023-06-24 20:54:47 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2023-06-24 20:54:47 +0000 |
commit | 3be68856210d57d2e89cf39c635eecf99eae2492 (patch) | |
tree | bdcb4b7434a54dea017e64f25d82b76e8051feb9 /lib | |
parent | 4b57fdc8405c969abbb8cbb7dddbbac44d9ee33f (diff) |
Calculate inet PCB SIP hash without table mutex.
Goal is to run UDP input in parallel. Btrace kstack analysis shows
that SIP hash for PCB lookup is quite expensive. When running in
parallel, there is also lock contention on the PCB table mutex.
It results in better performance to calculate the hash value before
taking the mutex. The hash secret has to be constant as hash
calculation must not depend on values protected by the table mutex.
Do not reseed anymore when hash table gets resized.
Analysis also shows that asserting a rw_lock while holding a mutex
is a bit expensive. Just remove the netlock assert.
OK dlg@ mvs@
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions