Add dump_stack_traces_io_time to the duration array

Replace dumped_process_count (currently unused) with
dump_stack_traces_io_time

Test: Modified a unit test and tested on device
Bug: 265020513
Change-Id: Ie052c507e5ebcf5e7be9a470e9a71b1711581d13
This commit is contained in:
Mohamad Mahmoud
2023-01-11 18:56:41 +00:00
parent c142e10f1e
commit b438ffce04
4 changed files with 21 additions and 15 deletions

View File

@@ -79,11 +79,11 @@ public class AnrLatencyTracker implements AutoCloseable {
private int mAnrType;
private int mDumpedProcessesCount = 0;
private long mFirstPidsDumpingStart;
private long mFirstPidsDumpingStartUptime;
private long mFirstPidsDumpingDuration = 0;
private long mNativePidsDumpingStart;
private long mNativePidsDumpingStartUptime;
private long mNativePidsDumpingDuration = 0;
private long mExtraPidsDumpingStart;
private long mExtraPidsDumpingStartUptime;
private long mExtraPidsDumpingDuration = 0;
private boolean mIsPushed = false;
@@ -223,37 +223,37 @@ public class AnrLatencyTracker implements AutoCloseable {
/** Records the start of pid dumping to file (subject and criticalEventSection). */
public void dumpingFirstPidsStarted() {
mFirstPidsDumpingStart = getUptimeMillis();
mFirstPidsDumpingStartUptime = getUptimeMillis();
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "dumpingFirstPids");
}
/** Records the end of pid dumping to file (subject and criticalEventSection). */
public void dumpingFirstPidsEnded() {
mFirstPidsDumpingDuration = getUptimeMillis() - mFirstPidsDumpingStart;
mFirstPidsDumpingDuration = getUptimeMillis() - mFirstPidsDumpingStartUptime;
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
/** Records the start of pid dumping to file (subject and criticalEventSection). */
public void dumpingNativePidsStarted() {
mNativePidsDumpingStart = getUptimeMillis();
mNativePidsDumpingStartUptime = getUptimeMillis();
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "dumpingNativePids");
}
/** Records the end of pid dumping to file (subject and criticalEventSection). */
public void dumpingNativePidsEnded() {
mNativePidsDumpingDuration = getUptimeMillis() - mNativePidsDumpingStart;
mNativePidsDumpingDuration = getUptimeMillis() - mNativePidsDumpingStartUptime;
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
/** Records the start of pid dumping to file (subject and criticalEventSection). */
public void dumpingExtraPidsStarted() {
mExtraPidsDumpingStart = getUptimeMillis();
mExtraPidsDumpingStartUptime = getUptimeMillis();
Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "dumpingExtraPids");
}
/** Records the end of pid dumping to file (subject and criticalEventSection). */
public void dumpingExtraPidsEnded() {
mExtraPidsDumpingDuration = getUptimeMillis() - mExtraPidsDumpingStart;
mExtraPidsDumpingDuration = getUptimeMillis() - mExtraPidsDumpingStartUptime;
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
@@ -337,7 +337,7 @@ public class AnrLatencyTracker implements AutoCloseable {
* Returns latency data as a comma separated value string for inclusion in ANR report.
*/
public String dumpAsCommaSeparatedArrayWithHeader() {
return "DurationsV1: " + mAnrTriggerUptime
return "DurationsV2: " + mAnrTriggerUptime
/* triggering_to_app_not_responding_duration = */
+ "," + (mAppNotRespondingStartUptime - mAnrTriggerUptime)
/* app_not_responding_duration = */
@@ -369,8 +369,8 @@ public class AnrLatencyTracker implements AutoCloseable {
/* anr_queue_size_when_pushed = */
+ "," + mAnrQueueSize
/* dumped_processes_count = */
+ "," + mDumpedProcessesCount
/* dump_stack_traces_io_time = */
+ "," + (mFirstPidsDumpingStartUptime - mDumpStackTracesStartUptime)
+ "\n\n";
}
@@ -422,7 +422,7 @@ public class AnrLatencyTracker implements AutoCloseable {
/* total_duration = */ mEndUptime - mAnrTriggerUptime,
/* triggering_to_stack_dump_duration = */
mFirstPidsDumpingStart - mAnrTriggerUptime,
mFirstPidsDumpingStartUptime - mAnrTriggerUptime,
/* triggering_to_app_not_responding_duration = */
mAppNotRespondingStartUptime - mAnrTriggerUptime,
/* app_not_responding_duration = */

View File

@@ -0,0 +1,3 @@
benmiles@google.com
gaillard@google.com
mohamadmahmoud@google.com

View File

@@ -57,7 +57,9 @@ public class AnrLatencyTrackerTests {
.thenReturn(158L)
.thenReturn(165L)
.thenReturn(175L)
.thenReturn(188L);
.thenReturn(198L)
.thenReturn(203L)
.thenReturn(209L);
}
@Test
@@ -109,7 +111,7 @@ public class AnrLatencyTrackerTests {
mLatencyTracker.close();
assertThat(mLatencyTracker.dumpAsCommaSeparatedArrayWithHeader())
.isEqualTo("DurationsV1: 50,5,25,8,100,2,3,7,8,15,2,7,13,10,3,4\n\n");
.isEqualTo("DurationsV2: 50,5,25,8,115,2,3,7,8,15,2,7,23,10,3,6\n\n");
verify(mLatencyTracker, times(1)).pushAtom();
}

View File

@@ -0,0 +1 @@
include /core/java/com/android/internal/os/anr/OWNERS