haproxy public development tree
Go to file
Willy Tarreau 40a871f09d BUILD: makefile: add a few popular ARMv8 CPU targets
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.
2021-05-12 14:23:22 +02:00
.github CI: extend spellchecker whitelist, add "ists" as well 2021-05-10 23:04:55 +02:00
addons BUILD/MINOR: opentracing: fixed compilation with filter enabled 2021-05-12 09:45:16 +02:00
admin DOC: fix a few remainig cases of "Haproxy" and "HAproxy" in doc and comments 2021-05-09 06:50:46 +02:00
dev CLEANUP: dev/flags: remove useless test in the stdin number parser 2021-04-03 15:29:10 +02:00
doc MINOR: uri_normalizer: Add `fragment-encode` normalizer 2021-05-11 17:24:32 +02:00
examples DOC: remove last occurrences of "HA-Proxy" syntax 2021-05-09 06:29:40 +02:00
include IMPORT: slz: do not produce the crc32_fast table when CRC is natively supported 2021-05-12 09:29:33 +02:00
reg-tests MINOR: uri_normalizer: Add `fragment-encode` normalizer 2021-05-11 17:24:32 +02:00
scripts REGTESTS: run-regtests: match both "HAProxy" and "HA-Proxy" in the version 2021-05-09 06:12:41 +02:00
src IMPORT: slz: do not produce the crc32_fast table when CRC is natively supported 2021-05-12 09:29:33 +02:00
tests CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
.cirrus.yml CI: cirrus: install "pcre" package 2021-04-15 08:35:46 +02:00
.gitattributes MINOR: Configure the `cpp` userdiff driver for *.[ch] in .gitattributes 2021-02-22 18:17:57 +01:00
.gitignore ADDONS: make addons/ discoverable by git via .gitignore 2021-05-07 16:48:14 +02:00
.travis.yml CI: Build VTest with clang 2021-05-10 23:00:59 +02:00
BRANCHES
CHANGELOG [RELEASE] Released version 2.4-dev19 2021-05-10 07:50:26 +02:00
CONTRIBUTING CLEANUP: contrib: remove the last references to the now dead contrib/ directory 2021-04-21 15:13:58 +02:00
INSTALL BUILD: makefile: add a few popular ARMv8 CPU targets 2021-05-12 14:23:22 +02:00
LICENSE
MAINTAINERS CONTRIB: move spoa_example out of the tree 2021-04-21 09:39:06 +02:00
Makefile BUILD: makefile: add a few popular ARMv8 CPU targets 2021-05-12 14:23:22 +02:00
README
ROADMAP
SUBVERS
VERDATE [RELEASE] Released version 2.4-dev19 2021-05-10 07:50:26 +02:00
VERSION [RELEASE] Released version 2.4-dev19 2021-05-10 07:50:26 +02:00

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)