diff options
author | Harald Musum <musum@verizonmedia.com> | 2022-02-09 13:57:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-09 13:57:43 +0100 |
commit | 234adeffe4f1e4f1275a834f42293722a2ce6829 (patch) | |
tree | f2a3f18303f613de3ec708cb9524360d021bca8d /vespamalloc | |
parent | 3840c3a1265610492cd8adf92a188d5e1862efd5 (diff) | |
parent | 75a5214373176d0d79a172b67683c1017a95113c (diff) |
Merge pull request #21119 from vespa-engine/revert-21118-balder/wire-in-mallopt-control-of-vespamalloc-skeleton
Revert "Wire in mallopt(in param, int value) interface in vespamalloc and ver…"
Diffstat (limited to 'vespamalloc')
-rw-r--r-- | vespamalloc/src/tests/stacktrace/stacktrace.cpp | 1 | ||||
-rw-r--r-- | vespamalloc/src/tests/test1/new_test.cpp | 27 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/malloc.h | 8 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/overload.h | 7 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/threadpool.h | 2 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/threadpool.hpp | 11 |
6 files changed, 6 insertions, 50 deletions
diff --git a/vespamalloc/src/tests/stacktrace/stacktrace.cpp b/vespamalloc/src/tests/stacktrace/stacktrace.cpp index 2f0d2eb2277..b28a9653d27 100644 --- a/vespamalloc/src/tests/stacktrace/stacktrace.cpp +++ b/vespamalloc/src/tests/stacktrace/stacktrace.cpp @@ -1,5 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include <cstdlib> +#include <cstdio> #include <pthread.h> #include <dlfcn.h> #include <cassert> diff --git a/vespamalloc/src/tests/test1/new_test.cpp b/vespamalloc/src/tests/test1/new_test.cpp index 6f84f7c0f63..5230869145d 100644 --- a/vespamalloc/src/tests/test1/new_test.cpp +++ b/vespamalloc/src/tests/test1/new_test.cpp @@ -3,6 +3,7 @@ #include <vespa/log/log.h> #include <malloc.h> #include <dlfcn.h> +#include <functional> LOG_SETUP("new_test"); @@ -133,28 +134,14 @@ void verify_vespamalloc_usable_size() { } } -enum class MallocLibrary { UNKNOWN, VESPA_MALLOC, VESPA_MALLOC_D}; - -MallocLibrary -detectLibrary() { - if (dlsym(RTLD_NEXT, "is_vespamallocd") != nullptr) { - // Debug variants will never have more memory available as there is pre/postamble for error detection. - return MallocLibrary::VESPA_MALLOC_D; - } else if (dlsym(RTLD_NEXT, "is_vespamalloc") != nullptr) { - return MallocLibrary::VESPA_MALLOC; - } - return MallocLibrary::UNKNOWN; -} - TEST("verify malloc_usable_size is sane") { constexpr size_t SZ = 33; std::unique_ptr<char[]> buf = std::make_unique<char[]>(SZ); size_t usable_size = malloc_usable_size(buf.get()); - MallocLibrary env = detectLibrary(); - if (env == MallocLibrary::VESPA_MALLOC_D) { + if (dlsym(RTLD_NEXT, "is_vespamallocd") != nullptr) { // Debug variants will never have more memory available as there is pre/postamble for error detection. EXPECT_EQUAL(SZ, usable_size); - } else if (env == MallocLibrary::VESPA_MALLOC) { + } else if (dlsym(RTLD_NEXT, "is_vespamalloc") != nullptr) { // Normal production vespamalloc will round up EXPECT_EQUAL(64u, usable_size); verify_vespamalloc_usable_size(); @@ -164,13 +151,5 @@ TEST("verify malloc_usable_size is sane") { } } -TEST("verify mallopt") { - MallocLibrary env = detectLibrary(); - if (env == MallocLibrary::UNKNOWN) return; - EXPECT_EQUAL(0, mallopt(M_MMAP_MAX, 0x1000000)); - EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, 0x1000000)); - EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, -1)); -} - TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/vespamalloc/src/vespamalloc/malloc/malloc.h b/vespamalloc/src/vespamalloc/malloc/malloc.h index 449dce29896..8e0a39e944b 100644 --- a/vespamalloc/src/vespamalloc/malloc/malloc.h +++ b/vespamalloc/src/vespamalloc/malloc/malloc.h @@ -25,7 +25,6 @@ public: } size_t getMaxNumThreads() const override { return _threadList.getMaxNumThreads(); } - int mallopt(int param, int value); void *malloc(size_t sz); void *malloc(size_t sz, std::align_val_t); void *realloc(void *oldPtr, size_t sz); @@ -150,11 +149,6 @@ void MemoryManager<MemBlockPtrT, ThreadListT>::info(FILE * os, size_t level) } template <typename MemBlockPtrT, typename ThreadListT> -int MemoryManager<MemBlockPtrT, ThreadListT>::mallopt(int param, int value) { - return _threadList.getCurrent().mallopt(param, value); -} - -template <typename MemBlockPtrT, typename ThreadListT> void * MemoryManager<MemBlockPtrT, ThreadListT>::malloc(size_t sz) { MemBlockPtrT mem; @@ -211,7 +205,7 @@ void MemoryManager<MemBlockPtrT, ThreadListT>::freeSC(void *ptr, SizeClassT sc) template <typename MemBlockPtrT, typename ThreadListT> void * MemoryManager<MemBlockPtrT, ThreadListT>::realloc(void *oldPtr, size_t sz) { - void *ptr(nullptr); + void *ptr(NULL); if (oldPtr) { MemBlockPtrT mem(oldPtr); mem.readjustAlignment(_segment); diff --git a/vespamalloc/src/vespamalloc/malloc/overload.h b/vespamalloc/src/vespamalloc/malloc/overload.h index 7d9c2b9c72e..69d95ef5cdc 100644 --- a/vespamalloc/src/vespamalloc/malloc/overload.h +++ b/vespamalloc/src/vespamalloc/malloc/overload.h @@ -4,7 +4,7 @@ #include <dlfcn.h> #include <errno.h> #include <new> -#include <cstdlib> +#include <stdlib.h> #include <malloc.h> class CreateAllocator @@ -140,11 +140,6 @@ struct mallinfo mallinfo() __THROW { } #endif -int mallopt(int param, int value) throw() __attribute((visibility("default"))); -int mallopt(int param, int value) throw() { - return vespamalloc::createAllocator()->mallopt(param, value); -} - void * malloc(size_t sz) __attribute((visibility("default"))); void * malloc(size_t sz) { return vespamalloc::createAllocator()->malloc(sz); diff --git a/vespamalloc/src/vespamalloc/malloc/threadpool.h b/vespamalloc/src/vespamalloc/malloc/threadpool.h index ec89079a415..ac4f5bb8551 100644 --- a/vespamalloc/src/vespamalloc/malloc/threadpool.h +++ b/vespamalloc/src/vespamalloc/malloc/threadpool.h @@ -19,7 +19,6 @@ public: void setPool(AllocPool & pool) { _allocPool = & pool; } - int mallopt(int param, int value); void malloc(size_t sz, MemBlockPtrT & mem); void free(MemBlockPtrT mem, SizeClassT sc); @@ -66,7 +65,6 @@ private: static constexpr bool alwaysReuse(SizeClassT sc) { return sc > ALWAYS_REUSE_SC_LIMIT; } AllocPool * _allocPool; - ssize_t _mmapLimit; AllocFree _memList[NUM_SIZE_CLASSES]; ThreadStatT _stat[NUM_SIZE_CLASSES]; uint32_t _threadId; diff --git a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp index a3691a496dd..7e86c3f691a 100644 --- a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp +++ b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp @@ -2,7 +2,6 @@ #pragma once #include <vespamalloc/malloc/threadpool.h> -#include <malloc.h> namespace vespamalloc { @@ -86,7 +85,6 @@ mallocHelper(size_t exactSize, template <typename MemBlockPtrT, typename ThreadStatT > ThreadPoolT<MemBlockPtrT, ThreadStatT>::ThreadPoolT() : _allocPool(nullptr), - _mmapLimit(-1), _threadId(0), _osThreadId(0) { @@ -96,15 +94,6 @@ template <typename MemBlockPtrT, typename ThreadStatT > ThreadPoolT<MemBlockPtrT, ThreadStatT>::~ThreadPoolT() = default; template <typename MemBlockPtrT, typename ThreadStatT > -int ThreadPoolT<MemBlockPtrT, ThreadStatT>::mallopt(int param, int value) { - if (param == M_MMAP_THRESHOLD) { - _mmapLimit = value; - return 1; - } - return 0; -} - -template <typename MemBlockPtrT, typename ThreadStatT > void ThreadPoolT<MemBlockPtrT, ThreadStatT>::malloc(size_t sz, MemBlockPtrT & mem) { SizeClassT sc = MemBlockPtrT::sizeClass(sz); |