[Telemetry] Include (compos) job cancellation reason
Job scheduler sometimes cancels the compos job, in which case,
getStopReason() will give the reason, by default it returns
STOP_REASON_UNDEFINED.
Test: build suceeded
Bug: 234151510
Change-Id: I10f29db6f45d8e9423b498d45769f39755c791fb
diff --git a/compos/service/java/com/android/server/compos/IsolatedCompilationJobService.java b/compos/service/java/com/android/server/compos/IsolatedCompilationJobService.java
index cf852e3..479ae7f 100644
--- a/compos/service/java/com/android/server/compos/IsolatedCompilationJobService.java
+++ b/compos/service/java/com/android/server/compos/IsolatedCompilationJobService.java
@@ -204,7 +204,7 @@
Log.w(TAG, "Failed to cancel CompilationTask", e);
}
- mMetrics.onCompilationEnded(IsolatedCompilationMetrics.RESULT_JOB_CANCELED);
+ mMetrics.onCompilationJobCanceled(mParams.getStopReason());
try {
task.asBinder().unlinkToDeath(this, 0);
} catch (NoSuchElementException e) {
diff --git a/compos/service/java/com/android/server/compos/IsolatedCompilationMetrics.java b/compos/service/java/com/android/server/compos/IsolatedCompilationMetrics.java
index 0ed2305..e333198 100644
--- a/compos/service/java/com/android/server/compos/IsolatedCompilationMetrics.java
+++ b/compos/service/java/com/android/server/compos/IsolatedCompilationMetrics.java
@@ -17,6 +17,7 @@
package com.android.server.compos;
import android.annotation.IntDef;
+import android.app.job.JobParameters;
import android.os.SystemClock;
import android.util.Log;
@@ -76,7 +77,6 @@
private long mCompilationStartTimeMs = 0;
public static void onCompilationScheduled(@ScheduleJobResult int result) {
- // TODO(b/218525257): write to ArtStatsLog instead of logcat
ArtStatsLog.write(ArtStatsLog.ISOLATED_COMPILATION_SCHEDULED, result);
Log.i(TAG, "ISOLATED_COMPILATION_SCHEDULED: " + result);
}
@@ -85,13 +85,24 @@
mCompilationStartTimeMs = SystemClock.elapsedRealtime();
}
+ public void onCompilationJobCanceled(@JobParameters.StopReason int jobStopReason) {
+ statsLogPostCompilation(RESULT_JOB_CANCELED, jobStopReason);
+ }
+
public void onCompilationEnded(@CompilationResult int result) {
+ statsLogPostCompilation(result, JobParameters.STOP_REASON_UNDEFINED);
+ }
+
+ private void statsLogPostCompilation(@CompilationResult int result,
+ @JobParameters.StopReason int jobStopReason) {
+
long compilationTime = mCompilationStartTimeMs == 0 ? -1
: SystemClock.elapsedRealtime() - mCompilationStartTimeMs;
mCompilationStartTimeMs = 0;
- // TODO(b/218525257): write to ArtStatsLog instead of logcat
- ArtStatsLog.write(ArtStatsLog.ISOLATED_COMPILATION_ENDED, compilationTime, result);
- Log.i(TAG, "ISOLATED_COMPILATION_ENDED: " + result + ", " + compilationTime);
+ ArtStatsLog.write(ArtStatsLog.ISOLATED_COMPILATION_ENDED, compilationTime,
+ result, jobStopReason);
+ Log.i(TAG, "ISOLATED_COMPILATION_ENDED: " + result + ", " + compilationTime
+ + ", " + jobStopReason);
}
}