diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-06-29 11:41:10 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-06-29 11:41:10 +0000 |
commit | bb00676ae9d58e54e7079a7844250d50bd350682 (patch) | |
tree | ca0de1fca59411d845c72a6f3011d9210ed602e8 /vespamalloc/src/vespamalloc/malloc/common.h | |
parent | b2bcbb4807896b14ef34a41efa2054cc2a90a9ab (diff) |
Remove support for configuring always-reuse-limit. It has never been used in 16 years...
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/common.h')
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/common.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/common.h b/vespamalloc/src/vespamalloc/malloc/common.h index b1b26f6b350..2bb7df58957 100644 --- a/vespamalloc/src/vespamalloc/malloc/common.h +++ b/vespamalloc/src/vespamalloc/malloc/common.h @@ -52,15 +52,13 @@ static constexpr uint32_t NUM_THREADS = 16384; #define PARANOID_CHECK3(a) #endif -typedef MmapMemory OSMemory; - -typedef int SizeClassT; +using OSMemory = MmapMemory; +using SizeClassT = int; +constexpr size_t ALWAYS_REUSE_LIMIT = 0x200000ul; -inline int msbIdx(uint64_t v) { - int64_t result; - __asm __volatile("bsrq %0,%0" : "=r" (result) : "0" (v)); - return result; +inline constexpr int msbIdx(uint64_t v) { + return (sizeof(v)*8 - 1) - __builtin_clzl(v); } template <size_t MinClassSizeC> @@ -69,14 +67,14 @@ class CommonT public: static constexpr size_t MAX_ALIGN = 0x200000ul; enum {MinClassSize = MinClassSizeC}; - static inline SizeClassT sizeClass(size_t sz) { + static inline constexpr SizeClassT sizeClass(size_t sz) { SizeClassT tmp(msbIdx(sz - 1) - (MinClassSizeC - 1)); return (sz <= (1 << MinClassSizeC )) ? 0 : tmp; } - static inline size_t classSize(SizeClassT sc) { return (size_t(1) << (sc + MinClassSizeC)); } + static inline constexpr size_t classSize(SizeClassT sc) { return (size_t(1) << (sc + MinClassSizeC)); } }; -inline void crash() { *((volatile unsigned *) NULL) = 0; } +inline void crash() { *((volatile unsigned *) nullptr) = 0; } template <typename T> inline void swap(T & a, T & b) { T tmp(a); a = b; b = tmp; } |