40a871f09d
This adds the following CPUs to the makefile: - armv81 : modern ARM cores (Cortex A55/A75/A76/A78/X1, Neoverse, Graviton2) - a72 : ARM Cortex-A72 or A73 (e.g. RPi4, Odroid N2, VIM3, AWS Graviton) - a53 : ARM Cortex-A53 or any of its successors in 64-bit mode (e.g. RPi3) - armv8-auto: both older and newer ARMv8 cores, with a minor runtime penalty The reasons for these ones are: - a53 is the common denominator of all of its successors, and does support CRC32 which is used by the gzip compression, that the generic armv8-a does not ; - a72 supports the same features but is an out-of-order one that deserves better optimizations; it's found in a number of high-performance multi-core CPUs mainly oriented towards I/O and network processing (Armada 8040, NXP LX2160A, AWS Graviton), and more recently the Raspberry Pi 4. The A73 found in VIM3 and Odroid-N2 can use the same optimizations ; - armv81 is for generic ARMv8.1-A and above, automatically enables LSE atomics which are way more scalable, and CRC32. This one covers modern ARMv8 cores such as Cortex A55/A75/A76/A77/A78/X1 and the Neoverse family such as found in AWS's Graviton2. The LSE instructions are essential for large numbers of cores (8 and above). - armv8-auto dynamically enables support for LSE extensions when detected while still being compatible with older cores. There is a small performance penalty in doing this (~3%) but a same executable will perform optimally on a wider range of hardware. This should be the best option for distros. It requires gcc-10 or gcc-9.4 and above. When no CPU is specified, GCC version 10.2 and above will automatically implement the wrapper used to detect the LSE extensions. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
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 |
README
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)