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

Commit 86e5a61e authored by Ryan Zuklie's avatar Ryan Zuklie
Browse files

Remove CPU_TIME for core processes.

Core UIDs can be cached and be allowed to be frozen. Instead, rely on
persistent getting all capabilities (including CPU_TIME) to propagate
the capability from "core" processes.

Flag: com.android.server.am.use_cpu_time_capability

Test: atest FrameworksMockingServicesTests:ServiceBindingOomAdjPolicyTest
Test: atest FrameworksMockingServicesTests:MockingOomAdjusterTests

Bug: 370817323
Change-Id: I86cc3a12541d7343062554df4c9c7005580c4991
parent f120014b
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -156,7 +156,6 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Slog;
@@ -3401,15 +3400,12 @@ public class OomAdjuster {
    }

    private static int getCpuCapability(ProcessRecord app, long nowUptime) {
        // Note: persistent processes get all capabilities, including CPU_TIME.
        final UidRecord uidRec = app.getUidRecord();
        if (uidRec != null && uidRec.isCurAllowListed()) {
            // Process has user visible activities.
            return PROCESS_CAPABILITY_CPU_TIME;
        }
        if (UserHandle.isCore(app.uid)) {
            // Make sure all system components are not frozen.
            return PROCESS_CAPABILITY_CPU_TIME;
        }
        if (app.mState.getCachedHasVisibleActivities()) {
            // Process has user visible activities.
            return PROCESS_CAPABILITY_CPU_TIME;