Signal lmkd to start psi monitoring after boot.
To save CPU cycles during boot for low resource device a new configuration is added to delay registration of psi monitoring until boot is complete. ActivityManagerService will send an lmkd message to start psi monitoring after boot. Bug: 288566858 Test: Build, boot and verified boot logs to confirm the behavior. Change-Id: Iee5cecdae54304b092c6a1801f3814e13a919be2
This commit is contained in:
@@ -5061,6 +5061,10 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
// Tell anyone interested that we are done booting!
|
||||
SystemProperties.set("sys.boot_completed", "1");
|
||||
SystemProperties.set("dev.bootcomplete", "1");
|
||||
|
||||
// Start PSI monitoring in LMKD if it was skipped earlier.
|
||||
ProcessList.startPsiMonitoringAfterBoot();
|
||||
|
||||
mUserController.onBootComplete(
|
||||
new IIntentReceiver.Stub() {
|
||||
@Override
|
||||
|
||||
@@ -357,6 +357,7 @@ public final class ProcessList {
|
||||
static final byte LMK_UPDATE_PROPS = 7;
|
||||
static final byte LMK_KILL_OCCURRED = 8; // Msg to subscribed clients on kill occurred event
|
||||
static final byte LMK_STATE_CHANGED = 9; // Msg to subscribed clients on state changed
|
||||
static final byte LMK_START_MONITORING = 9; // Start monitoring if delayed earlier
|
||||
|
||||
// Low Memory Killer Daemon command codes.
|
||||
// These must be kept in sync with async_event_type definitions in lmkd.h
|
||||
@@ -1568,6 +1569,15 @@ public final class ProcessList {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@hide}
|
||||
*/
|
||||
public static void startPsiMonitoringAfterBoot() {
|
||||
ByteBuffer buf = ByteBuffer.allocate(4);
|
||||
buf.putInt(LMK_START_MONITORING);
|
||||
writeLmkd(buf, null);
|
||||
}
|
||||
|
||||
private static boolean writeLmkd(ByteBuffer buf, ByteBuffer repl) {
|
||||
if (!sLmkdConnection.isConnected()) {
|
||||
// try to connect immediately and then keep retrying
|
||||
|
||||
Reference in New Issue
Block a user