From: Willy Tarreau Date: Sun, 26 Nov 2017 10:07:34 +0000 (+0100) Subject: MINOR: fd: cache-align fdtab and fdcache locks X-Git-Tag: v1.8.0~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b94969054fcbecf5a8aad909852ca84086c3c65;p=thirdparty%2Fhaproxy.git MINOR: fd: cache-align fdtab and fdcache locks These locks are highly contended, let's not make them share cache lines. --- diff --git a/include/proto/fd.h b/include/proto/fd.h index ce23c1cf22..8cc191f75d 100644 --- a/include/proto/fd.h +++ b/include/proto/fd.h @@ -39,9 +39,9 @@ extern int fd_cache_num; // number of events in the cache extern THREAD_LOCAL int *fd_updt; // FD updates list extern THREAD_LOCAL int fd_nbupdt; // number of updates in the list -__decl_hathreads(extern HA_SPINLOCK_T fdtab_lock); /* global lock to protect fdtab array */ -__decl_hathreads(extern HA_RWLOCK_T fdcache_lock); /* global lock to protect fd_cache array */ -__decl_hathreads(extern HA_SPINLOCK_T poll_lock); /* global lock to protect poll info */ +__decl_hathreads(extern HA_SPINLOCK_T __attribute__((aligned(64))) fdtab_lock); /* global lock to protect fdtab array */ +__decl_hathreads(extern HA_RWLOCK_T __attribute__((aligned(64))) fdcache_lock); /* global lock to protect fd_cache array */ +__decl_hathreads(extern HA_SPINLOCK_T __attribute__((aligned(64))) poll_lock); /* global lock to protect poll info */ /* Deletes an FD from the fdsets, and recomputes the maxfd limit. * The file descriptor is also closed.