From 6dc489c8ffdf816245fd1bd8c3410b478169d3ea Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Mon, 10 Apr 2023 21:32:28 -0700 Subject: [PATCH] Skip stopping the BG services for the new processes Processes are created as UID idle state, and we may emit the UID IDLE event after it's being created. However this would stop the pending bg services if they happen to be in the middle of restart, which doesn't make sense here. So we don't stop the bg services if its a new process here. Bug: 272375589 Test: tree hugger Change-Id: I1a7f2c963295b2f42c19ddf73dd59583d65ba02f --- services/core/java/com/android/server/am/OomAdjuster.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java index a98571b68067e..da889e94ac098 100644 --- a/services/core/java/com/android/server/am/OomAdjuster.java +++ b/services/core/java/com/android/server/am/OomAdjuster.java @@ -1452,7 +1452,10 @@ public class OomAdjuster { } if (uidRec.isIdle() && !uidRec.isSetIdle()) { uidChange |= UidRecord.CHANGE_IDLE; - becameIdle.add(uidRec); + if (uidRec.getSetProcState() != PROCESS_STATE_NONEXISTENT) { + // don't stop the bg services if it's just started. + becameIdle.add(uidRec); + } } } else { if (uidRec.isIdle()) {