summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2013-03-19 12:24:19 +0000
committerDmitry Vyukov <dvyukov@google.com>2013-03-19 12:24:19 +0000
commit8e1c769ed84f4d5cf23904dee1abeec6f125f1ac (patch)
tree6c2071aea302bb022d5996e01904f7ca3b65def7
parent723e24f768f5b32c38283ee8d2c4219267af2b4d (diff)
downloadcompiler-rt-8e1c769ed84f4d5cf23904dee1abeec6f125f1ac.tar.gz
compiler-rt-8e1c769ed84f4d5cf23904dee1abeec6f125f1ac.tar.bz2
compiler-rt-8e1c769ed84f4d5cf23904dee1abeec6f125f1ac.tar.xz
tsan: instruct malloc() to consume less memory
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177393 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/tsan/rtl/tsan_interceptors.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/tsan/rtl/tsan_interceptors.cc b/lib/tsan/rtl/tsan_interceptors.cc
index e2ef9561..5f7061c1 100644
--- a/lib/tsan/rtl/tsan_interceptors.cc
+++ b/lib/tsan/rtl/tsan_interceptors.cc
@@ -61,6 +61,7 @@ extern "C" void *__libc_malloc(uptr size);
extern "C" void *__libc_calloc(uptr size, uptr n);
extern "C" void *__libc_realloc(void *ptr, uptr size);
extern "C" void __libc_free(void *ptr);
+extern "C" int mallopt(int param, int value);
const int PTHREAD_MUTEX_RECURSIVE = 1;
const int PTHREAD_MUTEX_RECURSIVE_NP = 1;
const int kPthreadAttrSize = 56;
@@ -1831,6 +1832,10 @@ void InitializeInterceptors() {
REAL(memcpy) = internal_memcpy;
REAL(memcmp) = internal_memcmp;
+ // Instruct libc malloc to consume less memory.
+ mallopt(1, 0); // M_MXFAST
+ mallopt(-3, 32*1024); // M_MMAP_THRESHOLD
+
SANITIZER_COMMON_INTERCEPTORS_INIT;
TSAN_INTERCEPT(longjmp);