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

Commit 5f9a0abd authored by Kweku Adams's avatar Kweku Adams
Browse files

Don't rush job checking at boot.

Don't force an evaluation of all jobs right after the boot complete
signal. Trying to run jobs at boot may cause contention, so let the
execution of jobs after boot completed happen naturally to try and lower
the potential for jank or other negative UX.

Bug: 321598070
Test: boot device
Change-Id: I0fbe513fffc13960361952e3f1e20335f5c163d2
parent 5c05f2dc
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
package: "com.android.server.job"

flag {
    name: "do_not_force_rush_execution_at_boot"
    namespace: "backstage_power"
    description: "Don't force rush job execution right after boot completion"
    bug: "321598070"
}

flag {
    name: "relax_prefetch_connectivity_constraint_only_on_charger"
    namespace: "backstage_power"
+6 −2
Original line number Diff line number Diff line
@@ -2720,11 +2720,13 @@ public class JobSchedulerService extends com.android.server.SystemService
                        sc.maybeStartTrackingJobLocked(job, null);
                    }
                });
                if (!Flags.doNotForceRushExecutionAtBoot()) {
                    // GO GO GO!
                    mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget();
                }
            }
        }
    }

    private void startControllerTrackingAsync() {
        mHandler.post(() -> {
@@ -5441,6 +5443,8 @@ public class JobSchedulerService extends com.android.server.SystemService

            pw.println("Aconfig flags:");
            pw.increaseIndent();
            pw.print(Flags.FLAG_DO_NOT_FORCE_RUSH_EXECUTION_AT_BOOT,
                    Flags.doNotForceRushExecutionAtBoot());
            pw.print(Flags.FLAG_THROW_ON_UNSUPPORTED_BIAS_USAGE,
                    Flags.throwOnUnsupportedBiasUsage());
            pw.println();
+5 −2
Original line number Diff line number Diff line
@@ -344,11 +344,14 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler {
        final String flagName = getNextArgRequired();

        switch (flagName) {
            case android.app.job.Flags.FLAG_ENFORCE_MINIMUM_TIME_WINDOWS:
                pw.println(android.app.job.Flags.enforceMinimumTimeWindows());
                break;
            case android.app.job.Flags.FLAG_JOB_DEBUG_INFO_APIS:
                pw.println(android.app.job.Flags.jobDebugInfoApis());
                break;
            case android.app.job.Flags.FLAG_ENFORCE_MINIMUM_TIME_WINDOWS:
                pw.println(android.app.job.Flags.enforceMinimumTimeWindows());
            case com.android.server.job.Flags.FLAG_DO_NOT_FORCE_RUSH_EXECUTION_AT_BOOT:
                pw.println(com.android.server.job.Flags.doNotForceRushExecutionAtBoot());
                break;
            case com.android.server.job.Flags.FLAG_THROW_ON_UNSUPPORTED_BIAS_USAGE:
                pw.println(com.android.server.job.Flags.throwOnUnsupportedBiasUsage());