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

Commit b438ffce authored by Mohamad Mahmoud's avatar Mohamad Mahmoud
Browse files

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
parent c142e10f
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -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 = */
+3 −0
Original line number Diff line number Diff line
benmiles@google.com
gaillard@google.com
mohamadmahmoud@google.com
 No newline at end of file
+4 −2
Original line number Diff line number Diff line
@@ -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();
    }

+1 −0
Original line number Diff line number Diff line
include /core/java/com/android/internal/os/anr/OWNERS