summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2019-01-28 11:11:25 -0800
committer Mathieu Chartier <mathieuc@google.com> 2019-01-29 18:08:12 -0800
commitd2a975adb5b97be5e8f86a603666a66bdc934fd6 (patch)
tree25ef3dc90d18baabaad28d6c82ecea0c57de387d
parent1444690e53ee5a72cd745e1cd7287a03d315fc01 (diff)
Add gctype device config property for GC experiments
Added to the runtime_native namespace. The new property overrides dalvik.vm.gctype if it's set. Bug: 120794191 Test: adb shell device_config put runtime_native gctype CC,preverify Test: adb reboot Change-Id: I30a2a3bcfb83f502f168c0d8588d80982a5f7d76
-rw-r--r--core/jni/Android.bp1
-rw-r--r--core/jni/AndroidRuntime.cpp13
2 files changed, 13 insertions, 1 deletions
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 9afd5d0bff03..51a3b48e58ec 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -301,6 +301,7 @@ cc_library_shared {
"libhwui",
"libdl",
"libstatslog",
+ "server_configurable_flags",
],
generated_sources: ["android_util_StatsLog.cpp"],
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index c90071a0de44..49598bbb5ada 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -31,6 +31,7 @@
#include <binder/Parcel.h>
#include <utils/threads.h>
#include <cutils/properties.h>
+#include <server_configurable_flags/get_flags.h>
#include <SkGraphics.h>
@@ -774,7 +775,17 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
addOption("-XX:LowMemoryMode");
}
- parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");
+ std::string gc_type_override =
+ server_configurable_flags::GetServerConfigurableFlag("runtime_native", "gctype", "");
+ std::string gc_type_override_temp;
+ if (gc_type_override.empty()) {
+ parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");
+ } else {
+ // Copy the string so it doesn't go out of scope since addOption does not make a copy.
+ gc_type_override_temp = "-Xgc:" + gc_type_override;
+ addOption(gc_type_override_temp.c_str());
+ }
+
parseRuntimeOption("dalvik.vm.backgroundgctype", backgroundgcOptsBuf, "-XX:BackgroundGC=");
/*