aboutsummaryrefslogtreecommitdiffstats
path: root/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-06-23 10:22:08 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-06-23 10:22:08 +0000
commitd868575e5122c3a8b349f2eacfaf96114df22dba (patch)
tree56a39a17fc2cad5c1b90ec65d045f339f80005d2 /vespamalloc/src/vespamalloc/malloc/threadpool.hpp
parent97b15016085dd6f2b515b7051803f92e34b29ab9 (diff)
- Add control of M_MMAP_THRESHOLD with environment variable VESPA_MALLOC_MMAP_THRESHOLD.
- Reduce default from 1G to 64M.
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/threadpool.hpp')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/threadpool.hpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
index b5a283f6600..e62fa0f2fdf 100644
--- a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
+++ b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
@@ -7,8 +7,10 @@
namespace vespamalloc {
namespace {
- constexpr size_t MMAP_LIMIT_MIN = 0x100000; // 1M
- constexpr size_t MMAP_LIMIT_MAX = 0x40000000; // 1G
+ size_t
+ sanitizeMMapThreshold(int threshold) {
+ return std::min(MMAP_LIMIT_MAX, std::max(MMAP_LIMIT_MIN, threshold));
+ }
}
template <typename MemBlockPtrT, typename ThreadStatT>
@@ -112,9 +114,8 @@ ThreadPoolT<MemBlockPtrT, ThreadStatT>::~ThreadPoolT() = default;
template <typename MemBlockPtrT, typename ThreadStatT >
int ThreadPoolT<MemBlockPtrT, ThreadStatT>::mallopt(int param, int value) {
- size_t limit = value;
if (param == M_MMAP_THRESHOLD) {
- _mmapLimit = std::min(MMAP_LIMIT_MAX, std::max(MMAP_LIMIT_MIN, limit));
+ _mmapLimit = sanitizeMMapThreshold(value);
return 1;
}
return 0;