From fe87ffb7ea5a7c6ce4dea45222331716907ddbf4 Mon Sep 17 00:00:00 2001 From: Junhao Li Date: Sun, 20 May 2018 13:45:32 -0400 Subject: [PATCH] Disable large allocation report by default Fixes issue #360. [alkondratenko@gmail.com: adjusted commit message a bit] [alkondratenko@gmail.com: adjusted configure help message] Signed-off-by: Aliaksey Kandratsenka --- configure.ac | 9 +++++++++ src/tcmalloc.cc | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/configure.ac b/configure.ac index 497103e..7b5e710 100644 --- a/configure.ac +++ b/configure.ac @@ -653,6 +653,15 @@ AC_COMPILE_IFELSE( AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) +# Disable large allocation report by default. +AC_ARG_ENABLE([large-alloc-report], + [AS_HELP_STRING([--enable-large-alloc-report], + [report very large allocations to stderr])], + [enable_large_alloc_report="$enableval"], + [enable_large_alloc_report=no]) +AS_IF([test "x$enable_large_alloc_report" = xyes], + [AC_DEFINE([ENABLE_LARGE_ALLOC_REPORT], 1, [report large allocation])]) + # Write generated configuration file AC_CONFIG_FILES([Makefile src/gperftools/tcmalloc.h src/windows/gperftools/tcmalloc.h]) diff --git a/src/tcmalloc.cc b/src/tcmalloc.cc index 7b18ddb..48d4530 100644 --- a/src/tcmalloc.cc +++ b/src/tcmalloc.cc @@ -1272,9 +1272,11 @@ void* handle_oom(malloc_fn retry_fn, // Copy of FLAGS_tcmalloc_large_alloc_report_threshold with // automatic increases factored in. +#ifdef ENABLE_LARGE_ALLOC_REPORT static int64_t large_alloc_threshold = (kPageSize > FLAGS_tcmalloc_large_alloc_report_threshold ? kPageSize : FLAGS_tcmalloc_large_alloc_report_threshold); +#endif static void ReportLargeAlloc(Length num_pages, void* result) { StackTrace stack; @@ -1295,6 +1297,7 @@ static void ReportLargeAlloc(Length num_pages, void* result) { // Must be called with the page lock held. inline bool should_report_large(Length num_pages) { +#ifdef ENABLE_LARGE_ALLOC_REPORT const int64 threshold = large_alloc_threshold; if (threshold > 0 && num_pages >= (threshold >> kPageShift)) { // Increase the threshold by 1/8 every time we generate a report. @@ -1303,6 +1306,7 @@ inline bool should_report_large(Length num_pages) { ? threshold + threshold/8 : 8ll<<30); return true; } +#endif return false; } -- 1.8.3.1