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

Commit f069be7b authored by Rafal Slawik's avatar Rafal Slawik Committed by Android (Google) Code Review
Browse files

Merge "CPU time min threshold for CpuTimePerUidFreq"

parents dbf6f138 a79cf88c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -247,6 +247,13 @@ public class StatsPullAtomService extends SystemService {
    // 20% as a conservative estimate.
    private static final int MAX_PROCSTATS_RAW_SHARD_SIZE = (int) (MAX_PROCSTATS_SHARD_SIZE * 1.20);

    /**
     * Threshold to filter out small CPU times at frequency per UID. Those small values appear
     * because of more precise accounting in a BPF program. Discarding them reduces the data by at
     * least 20% with negligible error.
     */
    private static final int MIN_CPU_TIME_PER_UID_FREQ = 10;

    private final Object mThermalLock = new Object();
    @GuardedBy("mThermalLock")
    private IThermalService mThermalService;
@@ -1509,7 +1516,7 @@ public class StatsPullAtomService extends SystemService {
    int pullCpuTimePerUidFreqLocked(int atomTag, List<StatsEvent> pulledData) {
        mCpuUidFreqTimeReader.readAbsolute((uid, cpuFreqTimeMs) -> {
            for (int freqIndex = 0; freqIndex < cpuFreqTimeMs.length; ++freqIndex) {
                if (cpuFreqTimeMs[freqIndex] != 0) {
                if (cpuFreqTimeMs[freqIndex] >= MIN_CPU_TIME_PER_UID_FREQ) {
                    pulledData.add(FrameworkStatsLog.buildStatsEvent(
                            atomTag, uid, freqIndex, cpuFreqTimeMs[freqIndex]));
                }