From 1ca1b70cf937791011dd7cc607ceeffeabf7ac45 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 26 Nov 2017 10:50:36 +0100 Subject: [PATCH] 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. --- include/common/memory.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/common/memory.h b/include/common/memory.h index 509612523..80078558b 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;