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

Commit 073f960d authored by Mark Salyzyn's avatar Mark Salyzyn Committed by android-build-merger
Browse files

Merge "llkd: default enabled for userdebug" am: 18037820

am: c9692232

Change-Id: I852fa7aae9748d0fc6ef8093378c19e585c017b3
parents 80935554 c9692232
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -66,9 +66,15 @@ default false, if true do not sysrq t (dump all threads).
#### ro.llk.enable
default false, allow live-lock daemon to be enabled.

#### llk.enable
default ro.llk.enable, and evaluated for eng.

#### ro.khungtask.enable
default false, allow [khungtask] daemon to be enabled.

#### khungtask.enable
default ro.khungtask.enable and evaluated for eng.

#### ro.llk.mlockall
default false, enable call to mlockall().

+5 −3
Original line number Diff line number Diff line
@@ -30,9 +30,11 @@ bool llkInit(const char* threadname); /* threadname NULL, not spawned */
unsigned llkCheckMilliseconds(void);

/* clang-format off */
#define LLK_ENABLE_PROPERTY            "ro.llk.enable"
#define LLK_ENABLE_DEFAULT             false
#define KHT_ENABLE_PROPERTY            "ro.khungtask.enable"
#define LLK_ENABLE_WRITEABLE_PROPERTY  "llk.enable"
#define LLK_ENABLE_PROPERTY            "ro." LLK_ENABLE_WRITEABLE_PROPERTY
#define LLK_ENABLE_DEFAULT             false /* "eng" and userdebug true */
#define KHT_ENABLE_WRITEABLE_PROPERTY  "khungtask.enable"
#define KHT_ENABLE_PROPERTY            "ro." KHT_ENABLE_WRITEABLE_PROPERTY
#define LLK_MLOCKALL_PROPERTY          "ro.llk.mlockall"
#define LLK_MLOCKALL_DEFAULT           true
#define LLK_TIMEOUT_MS_PROPERTY        "ro.llk.timeout_ms"
+4 −0
Original line number Diff line number Diff line
@@ -1032,6 +1032,10 @@ unsigned llkCheckMilliseconds() {

bool llkInit(const char* threadname) {
    llkLowRam = android::base::GetBoolProperty("ro.config.low_ram", false);
    if (!LLK_ENABLE_DEFAULT && android::base::GetBoolProperty("ro.debuggable", false)) {
        llkEnable = android::base::GetProperty(LLK_ENABLE_PROPERTY, "eng") == "eng";
        khtEnable = android::base::GetProperty(KHT_ENABLE_PROPERTY, "eng") == "eng";
    }
    llkEnable = android::base::GetBoolProperty(LLK_ENABLE_PROPERTY, llkEnable);
    if (llkEnable && !llkTopDirectory.reset(procdir)) {
        // Most likely reason we could be here is llkd was started
+32 −2
Original line number Diff line number Diff line
# eng default for ro.llk.enable and ro.khungtask.enable
on property:ro.debuggable=*
    setprop llk.enable ${ro.llk.enable:-0}
    setprop khungtask.enable ${ro.khungtask.enable:-0}

on property:ro.debuggable=1
    setprop llk.enable ${ro.llk.enable:-1}
    setprop khungtask.enable ${ro.khungtask.enable:-1}

on property:ro.llk.enable=eng
    setprop llk.enable ${ro.debuggable:-0}

on property:ro.khungtask.enable=eng
    setprop khungtask.enable ${ro.debuggable:-0}

on property:llk.enable=1
    setprop llk.enable true

on property:llk.enable=0
    setprop llk.enable false

on property:khungtask.enable=1
    setprop khungtask.enable true

on property:khungtask.enable=0
    setprop khungtask.enable false

# Configure [khungtaskd]
on property:ro.khungtask.enable=true
on property:khungtask.enable=true
    write /proc/sys/kernel/hung_task_timeout_secs ${ro.khungtask.timeout:-720}
    write /proc/sys/kernel/hung_task_warnings 65535
    write /proc/sys/kernel/hung_task_check_count 65535
    write /proc/sys/kernel/hung_task_panic 1

on property:ro.llk.enable=true
on property:khungtask.enable=false
    write /proc/sys/kernel/hung_task_panic 0

on property:llk.enable=true
    start llkd

service llkd /system/bin/llkd
+20 −5
Original line number Diff line number Diff line
@@ -64,10 +64,16 @@ void execute(const char* command) {
}

seconds llkdSleepPeriod(char state) {
    auto default_enable = android::base::GetBoolProperty(LLK_ENABLE_PROPERTY, LLK_ENABLE_DEFAULT);
    if (android::base::GetProperty(LLK_ENABLE_PROPERTY, "nothing") == "nothing") {
        GTEST_LOG_INFO << LLK_ENABLE_PROPERTY " defaults to " << (default_enable ? "true" : "false")
                       << "\n";
    auto default_eng = android::base::GetProperty(LLK_ENABLE_PROPERTY, "eng") == "eng";
    auto default_enable = LLK_ENABLE_DEFAULT;
    if (!LLK_ENABLE_DEFAULT && default_eng &&
        android::base::GetBoolProperty("ro.debuggable", false)) {
        default_enable = true;
    }
    default_enable = android::base::GetBoolProperty(LLK_ENABLE_PROPERTY, default_enable);
    if (default_eng) {
        GTEST_LOG_INFO << LLK_ENABLE_PROPERTY " defaults to \"eng\" thus "
                       << (default_enable ? "true" : "false") << "\n";
    }
    // Hail Mary hope is unconfigured.
    if ((GetUintProperty(LLK_TIMEOUT_MS_PROPERTY, LLK_TIMEOUT_MS_DEFAULT) !=
@@ -78,6 +84,8 @@ seconds llkdSleepPeriod(char state) {
        execute("stop llkd");
        rest();
        std::string setprop("setprop ");
        execute((setprop + LLK_ENABLE_WRITEABLE_PROPERTY + " false").c_str());
        rest();
        execute((setprop + LLK_TIMEOUT_MS_PROPERTY + " 120000").c_str());
        rest();
        execute((setprop + KHT_TIMEOUT_PROPERTY + " 130").c_str());
@@ -86,8 +94,15 @@ seconds llkdSleepPeriod(char state) {
        rest();
        execute((setprop + LLK_ENABLE_PROPERTY + " true").c_str());
        rest();
        execute((setprop + LLK_ENABLE_WRITEABLE_PROPERTY + " true").c_str());
        rest();
    }
    default_enable = LLK_ENABLE_DEFAULT;
    if (!LLK_ENABLE_DEFAULT && (android::base::GetProperty(LLK_ENABLE_PROPERTY, "eng") == "eng") &&
        android::base::GetBoolProperty("ro.debuggable", false)) {
        default_enable = true;
    }
    default_enable = android::base::GetBoolProperty(LLK_ENABLE_PROPERTY, false);
    default_enable = android::base::GetBoolProperty(LLK_ENABLE_PROPERTY, default_enable);
    if (default_enable) {
        execute("start llkd");
        rest();