From 194d719fa4ef68d8f8671f6cd576265812a929f3 Mon Sep 17 00:00:00 2001 From: Vova Sharaienko Date: Thu, 27 Oct 2022 00:25:00 +0000 Subject: [PATCH] ExpressLog integration for JobScheduler - logging counter for deadline jobs Bug: 247803110 Test: build & statsd_testdrive Change-Id: I9637554ae80454e60aac9e7b14e391250a6ed980 --- .../com/android/server/job/controllers/TimeController.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java index b6361ce565699..80a70a6e9e9e6 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java @@ -31,6 +31,7 @@ import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.expresslog.Counter; import com.android.server.job.JobSchedulerService; import com.android.server.job.StateControllerProto; @@ -88,6 +89,8 @@ public final class TimeController extends StateController { // will never be unsatisfied (our time base can not go backwards). final long nowElapsedMillis = sElapsedRealtimeClock.millis(); if (job.hasDeadlineConstraint() && evaluateDeadlineConstraint(job, nowElapsedMillis)) { + // We're intentionally excluding jobs whose deadlines have passed + // (mostly like deadlines of 0) when the job was scheduled. return; } else if (job.hasTimingDelayConstraint() && evaluateTimingDelayConstraint(job, nowElapsedMillis)) { @@ -159,6 +162,8 @@ public final class TimeController extends StateController { // Scheduler. mStateChangedListener.onRunJobNow(job); } + Counter.logIncrement( + "job_scheduler.value_job_scheduler_job_deadline_expired_counter"); } else if (wouldBeReadyWithConstraintLocked(job, JobStatus.CONSTRAINT_DEADLINE)) { // This job's deadline is earlier than the current set alarm. Update the alarm. setDeadlineExpiredAlarmLocked(job.getLatestRunTimeElapsed(), @@ -229,6 +234,8 @@ public final class TimeController extends StateController { // Scheduler. mStateChangedListener.onRunJobNow(job); } + Counter.logIncrement( + "job_scheduler.value_job_scheduler_job_deadline_expired_counter"); it.remove(); } else { // Sorted by expiry time, so take the next one and stop. if (!wouldBeReadyWithConstraintLocked(job, JobStatus.CONSTRAINT_DEADLINE)) {