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

Commit 688ed594 authored by Roland Levillain's avatar Roland Levillain Committed by Nicolas Geoffray
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

(cherry picked from commit 7b098c84)

Change-Id: Ied0eacf46ab92ba128d0a538a314f42c18c5b8f5
Merged-In: Ibf765a5f442136d6327be99786ea9ae4b4537d59
parent 28cfcec6
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -220,6 +220,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;

/*
@@ -771,7 +776,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:");