From 28cfcec6f616f1af639833327c9fabeaa2f4cf74 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Mon, 28 Jan 2019 11:11:25 -0800 Subject: [PATCH] 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 (cherry picked from commit d2a975adb5b97be5e8f86a603666a66bdc934fd6) Change-Id: I9ca29e9a5a0c94234fb14a725334dae82171679b Merged-In: I30a2a3bcfb83f502f168c0d8588d80982a5f7d76 --- core/jni/Android.bp | 1 + core/jni/AndroidRuntime.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/jni/Android.bp b/core/jni/Android.bp index c385ca11611cc..f9813fdb65abe 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -290,6 +290,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 565fa6f631205..55fb27e8d57c7 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -769,7 +770,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="); /*