summaryrefslogtreecommitdiffstats
path: root/third_party/tcmalloc
diff options
context:
space:
mode:
authordmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-17 22:41:43 +0000
committerdmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-17 22:41:43 +0000
commit1b10ead5975236511d7bae65878e465bd63f9f57 (patch)
treeebebff435913f1821ea3a9a3137871dd66fdcd93 /third_party/tcmalloc
parent2c867e59c1b35ca4b35cde9108a5b1184ceb640d (diff)
downloadchromium_src-1b10ead5975236511d7bae65878e465bd63f9f57.zip
chromium_src-1b10ead5975236511d7bae65878e465bd63f9f57.tar.gz
chromium_src-1b10ead5975236511d7bae65878e465bd63f9f57.tar.bz2
Fix virtual memory regression from new tcmalloc: use old kPageShift and kMaxSize w/ kNumClasses = 54. (retry of r127301)
BUG=118329 TEST=perf tests. TBR=jar@chromium.org Review URL: https://chromiumcodereview.appspot.com/9722025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127381 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/tcmalloc')
-rw-r--r--third_party/tcmalloc/chromium/src/common.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/third_party/tcmalloc/chromium/src/common.h b/third_party/tcmalloc/chromium/src/common.h
index 4f848fa..2d24218 100644
--- a/third_party/tcmalloc/chromium/src/common.h
+++ b/third_party/tcmalloc/chromium/src/common.h
@@ -79,14 +79,18 @@ static const size_t kSkippedClasses = (kAlignment < kMinClassSize ? 1 : 0);
static const size_t kPageShift = 15;
static const size_t kNumClasses = 78 - kSkippedClasses;
#else
-static const size_t kPageShift = 13;
-static const size_t kNumClasses = 86 - kSkippedClasses;
+// Original TCMalloc code used kPageShift == 13. In Chromium, we changed
+// this to 12 (as was done in prior versions of TCMalloc).
+static const size_t kPageShift = 12;
+static const size_t kNumClasses = 54 - kSkippedClasses;
#endif
static const size_t kMaxThreadCacheSize = 4 << 20;
static const size_t kPageSize = 1 << kPageShift;
-// TODO(dmikurube): We Chromium may want to tune this kMaxSize.
-static const size_t kMaxSize = 256 * 1024;
+// Original TCMalloc code used kMaxSize == 256 * 1024. In Chromium, we
+// changed this to 32K, and represent it in terms of page size (as was done
+// in prior versions of TCMalloc).
+static const size_t kMaxSize = 8u * kPageSize;
// For all span-lengths < kMaxPages we keep an exact-size list.
static const size_t kMaxPages = 1 << (20 - kPageShift);