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

Commit 6d658d7d authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Dump per-process state cpu times to batterystats proto.

Bug: 66953194
Test: Compared dump of 'batterystats --checkin' and 'batterystats --proto' in text.
Change-Id: Ic70fe18fbb88cefa1e4299fde85121d0e80248fa
parent ea713a38
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -7051,6 +7051,28 @@ public abstract class BatteryStats implements Parcelable {
                    }
                }
            }

            for (int procState = 0; procState < Uid.NUM_PROCESS_STATE; ++procState) {
                final long[] timesMs = u.getCpuFreqTimes(which, procState);
                if (timesMs != null && timesMs.length == cpuFreqs.length) {
                    long[] screenOffTimesMs = u.getScreenOffCpuFreqTimes(which, procState);
                    if (screenOffTimesMs == null) {
                        screenOffTimesMs = new long[timesMs.length];
                    }
                    final long procToken = proto.start(UidProto.Cpu.BY_PROCESS_STATE);
                    proto.write(UidProto.Cpu.ByProcessState.PROCESS_STATE, procState);
                    for (int ic = 0; ic < timesMs.length; ++ic) {
                        long cToken = proto.start(UidProto.Cpu.ByProcessState.BY_FREQUENCY);
                        proto.write(UidProto.Cpu.ByFrequency.FREQUENCY_INDEX, ic + 1);
                        proto.write(UidProto.Cpu.ByFrequency.TOTAL_DURATION_MS,
                                timesMs[ic]);
                        proto.write(UidProto.Cpu.ByFrequency.SCREEN_OFF_DURATION_MS,
                                screenOffTimesMs[ic]);
                        proto.end(cToken);
                    }
                    proto.end(procToken);
                }
            }
            proto.end(cpuToken);

            // Flashlight (FLASHLIGHT_DATA)
+17 −0
Original line number Diff line number Diff line
@@ -537,7 +537,24 @@ message UidProto {
      // Screen-off CPU time in milliseconds.
      optional int64 screen_off_duration_ms = 3;
    }
    // CPU times accumulated across all process states.
    repeated ByFrequency by_frequency = 3;

    enum ProcessState {
      TOP = 0;
      FOREGROUND_SERVICE = 1;
      FOREGROUND = 2;
      BACKGROUND = 3;
      TOP_SLEEPING = 4;
      HEAVY_WEIGHT = 5;
      CACHED = 6;
    }
    // CPU times at different process states.
    message ByProcessState {
      optional ProcessState process_state = 1;
      repeated ByFrequency by_frequency = 2;
    }
    repeated ByProcessState by_process_state = 4;
  }
  optional Cpu cpu = 7;