haproxy/include/common
Willy Tarreau ed891fda52 MEDIUM: memory: make local pools independent on lockless pools
Till now the local pool caches were implemented only when lockless pools
were in use. This was mainly due to the difficulties to disentangle the
code parts. However the locked pools would further benefit from the local
cache, and having this would reduce the variants in the code.

This patch does just this. It adds a new debug macro DEBUG_NO_LOCAL_POOLS
to forcefully disable local pool caches, and makes sure that the high
level functions are now strictly the same between locked and lockless
(pool_alloc(), pool_alloc_dirty(), pool_free(), pool_get_first()). The
pool index calculation was moved inside the CONFIG_HAP_LOCAL_POOLS guards.
This allowed to move them out of the giant #ifdef and to significantly
reduce the code duplication.

A quick perf test shows that with locked pools the performance increases
by roughly 10% on 8 threads and gets closer to the lockless one.
2020-06-11 10:18:57 +02:00
..
buffer.h MEDIUM: memory: make local pools independent on lockless pools 2020-06-11 10:18:57 +02:00
cfgparse.h REORG: include: split mini-clist into haproxy/list and list-t.h 2020-06-11 10:18:56 +02:00
chunk.h REORG: include: split buf.h into haproxy/buf-t.h and haproxy/buf.h 2020-06-11 10:18:56 +02:00
fcgi.h CLEANUP: include: remove excessive includes of common/standard.h 2020-06-11 10:18:56 +02:00
h1.h CLEANUP: include: remove excessive includes of common/standard.h 2020-06-11 10:18:56 +02:00
h2.h REORG: include: move ist.h from common/ to import/ 2020-06-11 10:18:56 +02:00
hpack-dec.h REORG: include: update all files to use haproxy/api.h or api-t.h if needed 2020-06-11 10:18:42 +02:00
hpack-enc.h REORG: include: split buf.h into haproxy/buf-t.h and haproxy/buf.h 2020-06-11 10:18:56 +02:00
hpack-huff.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-tbl.h REORG: include: move ist.h from common/ to import/ 2020-06-11 10:18:56 +02:00
http-hdr.h REORG: include: move ist.h from common/ to import/ 2020-06-11 10:18:56 +02:00
http.h REORG: include: split buf.h into haproxy/buf-t.h and haproxy/buf.h 2020-06-11 10:18:56 +02:00
htx.h CLEANUP: include: remove excessive includes of common/standard.h 2020-06-11 10:18:56 +02:00
memory.h MEDIUM: memory: make local pools independent on lockless pools 2020-06-11 10:18:57 +02:00
namespace.h REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
net_helper.h CLEANUP: include: remove excessive includes of common/standard.h 2020-06-11 10:18:56 +02:00
regex.h REORG: include: split hathreads into haproxy/thread.h and haproxy/thread-t.h 2020-06-11 10:18:56 +02:00
standard.h REORG: include: move integer manipulation functions from standard.h to intops.h 2020-06-11 10:18:56 +02:00
ticks.h CLEANUP: include: remove excessive includes of common/standard.h 2020-06-11 10:18:56 +02:00
uri_auth.h REORG: include: update all files to use haproxy/api.h or api-t.h if needed 2020-06-11 10:18:42 +02:00
xref.h CLEANUP: threads: remove a few needless includes of hathreads.h 2020-06-11 10:18:56 +02:00