Merge "Print heartbeat information in job dumpsys"
This commit is contained in:
committed by
Android (Google) Code Review
commit
0962d1d8cb
@@ -36,6 +36,11 @@ message JobSchedulerServiceDumpProto {
|
||||
|
||||
optional ConstantsProto settings = 1;
|
||||
|
||||
optional int32 current_heartbeat = 14;
|
||||
repeated int32 next_heartbeat = 15;
|
||||
optional int64 last_heartbeat_time_millis = 16;
|
||||
optional int64 next_heartbeat_time_millis = 17;
|
||||
|
||||
repeated int32 started_users = 2;
|
||||
|
||||
message RegisteredJob {
|
||||
@@ -54,6 +59,8 @@ message JobSchedulerServiceDumpProto {
|
||||
optional bool is_job_currently_active = 6;
|
||||
optional bool is_uid_backing_up = 7;
|
||||
optional bool is_component_present = 8;
|
||||
|
||||
optional int64 last_run_heartbeat = 9;
|
||||
}
|
||||
repeated RegisteredJob registered_jobs = 3;
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@ import com.android.server.FgThread;
|
||||
import com.android.server.LocalServices;
|
||||
import com.android.server.job.JobSchedulerServiceDumpProto.ActiveJob;
|
||||
import com.android.server.job.JobSchedulerServiceDumpProto.PendingJob;
|
||||
import com.android.server.job.JobSchedulerServiceDumpProto.RegisteredJob;
|
||||
import com.android.server.job.controllers.AppIdleController;
|
||||
import com.android.server.job.controllers.BackgroundJobsController;
|
||||
import com.android.server.job.controllers.BatteryController;
|
||||
@@ -2937,6 +2938,23 @@ public final class JobSchedulerService extends com.android.server.SystemService
|
||||
synchronized (mLock) {
|
||||
mConstants.dump(pw);
|
||||
pw.println();
|
||||
|
||||
pw.println(" Heartbeat:");
|
||||
pw.print(" Current: "); pw.println(mHeartbeat);
|
||||
pw.println(" Next");
|
||||
pw.print(" ACTIVE: "); pw.println(mNextBucketHeartbeat[0]);
|
||||
pw.print(" WORKING: "); pw.println(mNextBucketHeartbeat[1]);
|
||||
pw.print(" FREQUENT: "); pw.println(mNextBucketHeartbeat[2]);
|
||||
pw.print(" RARE: "); pw.println(mNextBucketHeartbeat[3]);
|
||||
pw.print(" Last heartbeat: ");
|
||||
TimeUtils.formatDuration(mLastHeartbeatTime, nowElapsed, pw);
|
||||
pw.println();
|
||||
pw.print(" Next heartbeat: ");
|
||||
TimeUtils.formatDuration(mLastHeartbeatTime + mConstants.STANDBY_HEARTBEAT_TIME,
|
||||
nowElapsed, pw);
|
||||
pw.println();
|
||||
pw.println();
|
||||
|
||||
pw.println("Started users: " + Arrays.toString(mStartedUsers));
|
||||
pw.print("Registered ");
|
||||
pw.print(mJobs.size());
|
||||
@@ -2954,6 +2972,10 @@ public final class JobSchedulerService extends com.android.server.SystemService
|
||||
}
|
||||
|
||||
job.dump(pw, " ", true, nowElapsed);
|
||||
pw.print(" Last run heartbeat: ");
|
||||
pw.print(heartbeatWhenJobsLastRun(job));
|
||||
pw.println();
|
||||
|
||||
pw.print(" Ready: ");
|
||||
pw.print(isReadyToBeExecutedLocked(job));
|
||||
pw.print(" (job=");
|
||||
@@ -3096,6 +3118,16 @@ public final class JobSchedulerService extends com.android.server.SystemService
|
||||
|
||||
synchronized (mLock) {
|
||||
mConstants.dump(proto, JobSchedulerServiceDumpProto.SETTINGS);
|
||||
proto.write(JobSchedulerServiceDumpProto.CURRENT_HEARTBEAT, mHeartbeat);
|
||||
proto.write(JobSchedulerServiceDumpProto.NEXT_HEARTBEAT, mNextBucketHeartbeat[0]);
|
||||
proto.write(JobSchedulerServiceDumpProto.NEXT_HEARTBEAT, mNextBucketHeartbeat[1]);
|
||||
proto.write(JobSchedulerServiceDumpProto.NEXT_HEARTBEAT, mNextBucketHeartbeat[2]);
|
||||
proto.write(JobSchedulerServiceDumpProto.NEXT_HEARTBEAT, mNextBucketHeartbeat[3]);
|
||||
proto.write(JobSchedulerServiceDumpProto.LAST_HEARTBEAT_TIME_MILLIS,
|
||||
mLastHeartbeatTime - nowUptime);
|
||||
proto.write(JobSchedulerServiceDumpProto.NEXT_HEARTBEAT_TIME_MILLIS,
|
||||
mLastHeartbeatTime + mConstants.STANDBY_HEARTBEAT_TIME - nowUptime);
|
||||
|
||||
for (int u : mStartedUsers) {
|
||||
proto.write(JobSchedulerServiceDumpProto.STARTED_USERS, u);
|
||||
}
|
||||
@@ -3134,6 +3166,7 @@ public final class JobSchedulerService extends com.android.server.SystemService
|
||||
}
|
||||
proto.write(JobSchedulerServiceDumpProto.RegisteredJob.IS_COMPONENT_PRESENT,
|
||||
componentPresent);
|
||||
proto.write(RegisteredJob.LAST_RUN_HEARTBEAT, heartbeatWhenJobsLastRun(job));
|
||||
|
||||
proto.end(rjToken);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user