mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-14 10:09:09 +02:00
a4e39890f35e2c5d55f6dc00356a6d7665390a5b
This function's purpose is to wake up either a local or remote task, bypassing the tree-based run queue. It is meant for fast wakeups that are supposed to be equivalent to those used with tasklets, i.e. a task had to pause some processing and can complete (typically a resource becomes available again). In all cases, it's important to keep in mind that the task must have gone through the regular scheduling path before being blocked, otherwise the task priorities would be ignored. The reason for this is that some wakeups are massively inter-thread (e.g. server queues), that these inter-thread wakeups cause a huge contention on the shared runqueue lock. A user reported 47% CPU spent in process_runnable_tasks with only 32 threads and 80k requests in queues. With this mechanism, purely one-to-one wakeups can avoid taking the lock thanks to the mt_list used for the shared tasklet queue. Right now the shared tasklet queue moves everything to the TL_URGENT queue. It's not dramatic but it would seem better to have a new shared list dedicated to tasks, and that would deliver into TL_NORMAL, for an even better fairness. This could be improved in the future.
…
…
…
…
…
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)
Description
haproxy public development tree. Unstable code.
cachecachingddos-mitigationfastcgihaproxyhigh-availabilityhigh-performancehttphttp2httpsipv6load-balancerproxyproxy-protocolreverse-proxytls13
Readme
254 MiB
Languages
C
98%
Shell
0.9%
Makefile
0.5%
Lua
0.2%
Python
0.2%