Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b098c84 authored by Roland Levillain's avatar Roland Levillain Committed by Mathieu Chartier
Browse files

Read "gctype" flag from namespace "runtime_native_boot".

ART does not support changing the garbage collector type/configuration
dynamically at the moment, so we can only change it when the runtime
starts, i.e. at boot time.

Also materialize "gctype" and "runtime_native_boot" as named constants.

Bug: 120794191
Bug: 72446017
Test: adb shell device_config put runtime_native_boot gctype nogenerational_cc && adb reboot
Test: adb shell device_config put runtime_native_boot gctype generational_cc && adb reboot
Change-Id: Ibf765a5f442136d6327be99786ea9ae4b4537d59
parent 20a2484e
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -230,6 +230,11 @@ extern int register_com_android_internal_os_Zygote(JNIEnv *env);
extern int register_com_android_internal_os_ZygoteInit(JNIEnv *env);
extern int register_com_android_internal_util_VirtualRefBasePtr(JNIEnv *env);

// Namespace for Android Runtime flags applied during boot time.
static const char* RUNTIME_NATIVE_BOOT_NAMESPACE = "runtime_native_boot";
// Feature flag name for Garbage Collector type.
static const char* GCTYPE = "gctype";

static AndroidRuntime* gCurRuntime = NULL;

/*
@@ -776,7 +781,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote)
    }

    std::string gc_type_override =
            server_configurable_flags::GetServerConfigurableFlag("runtime_native", "gctype", "");
            server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE,
                                                                 GCTYPE,
                                                                 /*default_value=*/ "");
    std::string gc_type_override_temp;
    if (gc_type_override.empty()) {
        parseRuntimeOption("dalvik.vm.gctype", gctypeOptsBuf, "-Xgc:");