From: Willy Tarreau Date: Sat, 9 May 2020 07:02:35 +0000 (+0200) Subject: CLENAUP: config: move CONFIG_HAP_LOCKLESS_POOLS out of config.h X-Git-Tag: v2.2-dev8~97 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3bc4e8bfe6edc5ca8283f6b6fcc8d9b6b8a08944;p=thirdparty%2Fhaproxy.git CLENAUP: config: move CONFIG_HAP_LOCKLESS_POOLS out of config.h The setting of CONFIG_HAP_LOCKLESS_POOLS depending on threads and compat was done in config.h for use only in memory.h and memory.c where other settings are dealt with. Further, the default pool cache size was set there from a fixed value instead of being set from defaults.h Let's move the decision to enable lockless pools via CONFIG_HAP_LOCKLESS_POOLS to memory.h, and set the default pool cache size in defaults.h like other default settings. This was the next-to-last setting in config.h. --- diff --git a/include/common/config.h b/include/common/config.h index 9d7bf88e2f..365705c4c3 100644 --- a/include/common/config.h +++ b/include/common/config.h @@ -32,14 +32,4 @@ #define THREAD_LOCAL #endif -/* On architectures supporting threads and double-word CAS, we can implement - * lock-less memory pools. This isn't supported for debugging modes however. - */ -#if defined(USE_THREAD) && defined(HA_HAVE_CAS_DW) && !defined(DEBUG_NO_LOCKLESS_POOLS) && !defined(DEBUG_UAF) && !defined(DEBUG_FAIL_ALLOC) -#define CONFIG_HAP_LOCKLESS_POOLS -#ifndef CONFIG_HAP_POOL_CACHE_SIZE -#define CONFIG_HAP_POOL_CACHE_SIZE 524288 -#endif -#endif - #endif /* _COMMON_CONFIG_H */ diff --git a/include/common/defaults.h b/include/common/defaults.h index 3350825185..aeddb0108e 100644 --- a/include/common/defaults.h +++ b/include/common/defaults.h @@ -307,6 +307,11 @@ #define MEM_USABLE_RATIO 0.97 #endif +/* default per-thread pool cache size when enabled */ +#ifndef CONFIG_HAP_POOL_CACHE_SIZE +#define CONFIG_HAP_POOL_CACHE_SIZE 524288 +#endif + /* Number of samples used to compute the times reported in stats. A power of * two is highly recommended, and this value multiplied by the largest response * time must not overflow and unsigned int. See freq_ctr.h for more information. diff --git a/include/common/memory.h b/include/common/memory.h index 44a9dcb576..7bcef94ea7 100644 --- a/include/common/memory.h +++ b/include/common/memory.h @@ -34,6 +34,13 @@ #include #include +/* On architectures supporting threads and double-word CAS, we can implement + * lock-less memory pools. This isn't supported for debugging modes however. + */ +#if defined(USE_THREAD) && defined(HA_HAVE_CAS_DW) && !defined(DEBUG_NO_LOCKLESS_POOLS) && !defined(DEBUG_UAF) && !defined(DEBUG_FAIL_ALLOC) +#define CONFIG_HAP_LOCKLESS_POOLS +#endif + #ifndef DEBUG_DONT_SHARE_POOLS #define MEM_F_SHARED 0x1 #else