mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 16:04:37 +00:00
haproxy public development tree
d46ed5c26b
update_freq_ctr_period() was still not very clean and didn't wait for the rotation lock to be dropped before trying again, thus maintaining the contention at a high level. In addition, the rotation update was made in three steps, which are not very efficient in terms of bus cycles. Here the wait loop was reworked so that the fast path remains short and that the contended path waits for the lock to be dropped before attempting another write, but it only waits a relax cycle before attempting a read. The rotation block was simplified to remove a test that was already validated by the first loop, and so that the retrieval of the current period, its reset and its increment are all performed in a single atomic op and the store to the previous period is performed immediately after. All this results in significantly smaller code for the inline function (~1kB total) and a shorter critical path. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
contrib | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
BRANCHES | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
ROADMAP | ||
SUBVERS | ||
VERDATE | ||
VERSION |
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)