Experiment: use TCMalloc for Blink WTF FastMalloc.
This is a temporary CL. It is intended to be reverted
soon (1 day) and it's only purpose is collecting some
experimental data on the pagecycler dashboard.
BUG: 10431702
Change-Id: Ibce40d28a28cff20303869f8a690a1d6155747a4
diff --git a/Source/config.h b/Source/config.h
index bf664ff..95df9bd 100644
--- a/Source/config.h
+++ b/Source/config.h
@@ -107,6 +107,12 @@
#define WTF_USE_SYSTEM_MALLOC 1
#endif /* OS(MACOSX) */
+/* Experimental: evaluate use of TCMalloc on Android (which does NOT have TCMalloc by default) */
+#if OS(ANDROID)
+#undef WTF_USE_SYSTEM_MALLOC
+#define HAVE_MADV_DONTNEED 1
+#endif
+
#if OS(POSIX)
#define HAVE_MMAP 1
#define HAVE_SIGNAL_H 1
diff --git a/Source/wtf/FastMalloc.cpp b/Source/wtf/FastMalloc.cpp
index 9c524f9..6651a89 100644
--- a/Source/wtf/FastMalloc.cpp
+++ b/Source/wtf/FastMalloc.cpp
@@ -343,6 +343,8 @@
{
#if OS(MACOSX)
return arc4random();
+#elif OS(ANDROID)
+ return static_cast<uint32_t>(random());
#else
return static_cast<uint32_t>(static_cast<uintptr_t>(currentTime() * 10000) ^ reinterpret_cast<uintptr_t>(&kLLHardeningMask));
#endif
diff --git a/Source/wtf/wtf.gyp b/Source/wtf/wtf.gyp
index 2c04f12..bac2704 100644
--- a/Source/wtf/wtf.gyp
+++ b/Source/wtf/wtf.gyp
@@ -155,6 +155,11 @@
['exclude', 'TC.*\\.(cpp|h)$'],
],
}],
+ ['OS=="android"', {
+ 'sources/': [
+ ['include', 'TC.*\\.(cpp|h)$'],
+ ],
+ }],
],
},
]
diff --git a/Source/wtf/wtf.target.darwin-arm.mk b/Source/wtf/wtf.target.darwin-arm.mk
index d0b0d39..97d6c93 100644
--- a/Source/wtf/wtf.target.darwin-arm.mk
+++ b/Source/wtf/wtf.target.darwin-arm.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \
diff --git a/Source/wtf/wtf.target.darwin-mips.mk b/Source/wtf/wtf.target.darwin-mips.mk
index 59e3ac7..cab7684 100644
--- a/Source/wtf/wtf.target.darwin-mips.mk
+++ b/Source/wtf/wtf.target.darwin-mips.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \
diff --git a/Source/wtf/wtf.target.darwin-x86.mk b/Source/wtf/wtf.target.darwin-x86.mk
index c3da494..3510909 100644
--- a/Source/wtf/wtf.target.darwin-x86.mk
+++ b/Source/wtf/wtf.target.darwin-x86.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \
diff --git a/Source/wtf/wtf.target.linux-arm.mk b/Source/wtf/wtf.target.linux-arm.mk
index d0b0d39..97d6c93 100644
--- a/Source/wtf/wtf.target.linux-arm.mk
+++ b/Source/wtf/wtf.target.linux-arm.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \
diff --git a/Source/wtf/wtf.target.linux-mips.mk b/Source/wtf/wtf.target.linux-mips.mk
index 59e3ac7..cab7684 100644
--- a/Source/wtf/wtf.target.linux-mips.mk
+++ b/Source/wtf/wtf.target.linux-mips.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \
diff --git a/Source/wtf/wtf.target.linux-x86.mk b/Source/wtf/wtf.target.linux-x86.mk
index c3da494..3510909 100644
--- a/Source/wtf/wtf.target.linux-x86.mk
+++ b/Source/wtf/wtf.target.linux-x86.mk
@@ -77,6 +77,7 @@
third_party/WebKit/Source/wtf/RefCountedLeakCounter.cpp \
third_party/WebKit/Source/wtf/SHA1.cpp \
third_party/WebKit/Source/wtf/SizeLimits.cpp \
+ third_party/WebKit/Source/wtf/TCSystemAlloc.cpp \
third_party/WebKit/Source/wtf/ThreadIdentifierDataPthreads.cpp \
third_party/WebKit/Source/wtf/Threading.cpp \
third_party/WebKit/Source/wtf/ThreadingPthreads.cpp \