MAJOR: threads/plock: update the embedded library

The plock code hasn't been been updated since 2017 and didn't benefit
from the exponential back-off improvements that were added in 2018.
Simply updating the file shows a massive performance gain on large
thread count (>=48) with dequeuing going from 113k RPS to 300k RPS and
round robin from 229k RPS to 1020k RPS. It was about time to update.
In addition, some recent improvements to the code will be useful with
thread groups.

An interesting improvement concerns EPYC CPUs. This one alone increased
fairness and was sufficient to avoid crashes in process_srv_queue() there,
when hammering two servers with maxconn 200 under 1k connections.
This commit is contained in:
Willy Tarreau 2022-07-29 17:53:31 +02:00
parent ddab05b98a
commit 688709d814
1 changed files with 945 additions and 38 deletions

File diff suppressed because it is too large Load Diff