diff --git a/lmkd.cpp b/lmkd.cpp index eae24ce..4e4490f 100644 --- a/lmkd.cpp +++ b/lmkd.cpp @@ -3482,7 +3482,7 @@ static void update_props() { int main(int argc, char **argv) { if ((argc > 1) && argv[1] && !strcmp(argv[1], "--reinit")) { - if (property_set(LMKD_REINIT_PROP, "0")) { + if (property_set(LMKD_REINIT_PROP, "")) { ALOGE("Failed to reset " LMKD_REINIT_PROP " property"); } return issue_reinit(); diff --git a/lmkd.rc b/lmkd.rc index c9eee68..6f90bcb 100644 --- a/lmkd.rc +++ b/lmkd.rc @@ -10,36 +10,42 @@ service lmkd /system/bin/lmkd on property:lmkd.reinit=1 exec_background /system/bin/lmkd --reinit -# properties most likely to be used in experiments -on property:persist.device_config.lmkd_native.debug=* +# reinitialize lmkd after device finished booting if experiments set any flags during boot +on property:sys.boot_completed=1 && property:lmkd.reinit=0 setprop lmkd.reinit 1 +# properties most likely to be used in experiments +# setting persist.device_config.* property either triggers immediate lmkd re-initialization +# if the device finished booting or sets lmkd.reinit=0 to re-initialize lmkd after boot completes +on property:persist.device_config.lmkd_native.debug=* + setprop lmkd.reinit ${sys.boot_completed:-0} + on property:persist.device_config.lmkd_native.kill_heaviest_task=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.kill_timeout_ms=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.swap_free_low_percentage=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.psi_partial_stall_ms=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.psi_complete_stall_ms=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.thrashing_limit=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.thrashing_limit_decay=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.thrashing_limit_critical=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.swap_util_max=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0} on property:persist.device_config.lmkd_native.filecache_min_kb=* - setprop lmkd.reinit 1 + setprop lmkd.reinit ${sys.boot_completed:-0}