From: Willy Tarreau Date: Sun, 26 Nov 2017 09:50:36 +0000 (+0100) Subject: CLEANUP: pools: align pools on a cache line X-Git-Tag: v1.8.0~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ca1b70cf937791011dd7cc607ceeffeabf7ac45;p=thirdparty%2Fhaproxy.git CLEANUP: pools: align pools on a cache line There are just a few pools, and they're stressed a lot, so it makes sense to dedicate them a cache line to avoid contention and to place the lock at the beginning. --- diff --git a/include/common/memory.h b/include/common/memory.h index 5096125234..80078558b6 100644 --- a/include/common/memory.h +++ b/include/common/memory.h @@ -48,8 +48,8 @@ #endif struct pool_head { - void **free_list; __decl_hathreads(HA_SPINLOCK_T lock); /* the spin lock */ + void **free_list; struct list list; /* list of all known pools */ unsigned int used; /* how many chunks are currently in use */ unsigned int allocated; /* how many chunks have been allocated */ @@ -60,7 +60,7 @@ struct pool_head { unsigned int users; /* number of pools sharing this zone */ unsigned int failed; /* failed allocations */ char name[12]; /* name of the pool */ -}; +} __attribute__((aligned(64))); /* poison each newly allocated area with this byte if >= 0 */ extern int mem_poison_byte;