From 26a6427c4459980f1fccfa1e82247ad3a378afd3 Mon Sep 17 00:00:00 2001 From: David Sehr Date: Thu, 30 May 2019 13:40:23 -0700 Subject: Add system option to disable lock profiling Disable lock profiling to test for overhead. Bug: 133257467 Test: build Change-Id: Ida5f83e626c82266de69b13dc2def0477cc87b0f --- core/jni/AndroidRuntime.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 1854ea940379..fc9c49573a7f 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -237,6 +237,11 @@ static const char* ENABLE_APEX_IMAGE = "enable_apex_image"; // Flag to pass to the runtime when using the apex image. static const char* kApexImageOption = "-Ximage:/system/framework/apex.art"; +// Feature flag name for disabling lock profiling. +static const char* DISABLE_LOCK_PROFILING = "disable_lock_profiling"; +// Runtime option disabling lock profiling. +static const char* kLockProfThresholdRuntimeOption = "-Xlockprofthreshold:0"; + static AndroidRuntime* gCurRuntime = NULL; /* @@ -685,6 +690,17 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) ALOGI("Using default boot image"); } + std::string disable_lock_profiling = + server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE, + DISABLE_LOCK_PROFILING, + /*default_value=*/ ""); + if (disable_lock_profiling == "true") { + addOption(kLockProfThresholdRuntimeOption); + ALOGI("Disabling lock profiling: '%s'\n", kLockProfThresholdRuntimeOption); + } else { + ALOGI("Leaving lock profiling enabled"); + } + bool checkJni = false; property_get("dalvik.vm.checkjni", propBuf, ""); if (strcmp(propBuf, "true") == 0) { -- cgit v1.2.3-59-g8ed1b