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

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

Update KernelUidCpuFreqTimeReader to handle uid removals.

Bug: 34133340
Test: manual
Change-Id: Iaad2061671d83e1ff6d2797e166ae903f6faec13
parent 8490ed92
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -3518,6 +3518,7 @@ public class BatteryStatsImpl extends BatteryStats {
    public void removeIsolatedUidLocked(int isolatedUid) {
    public void removeIsolatedUidLocked(int isolatedUid) {
        mIsolatedUids.delete(isolatedUid);
        mIsolatedUids.delete(isolatedUid);
        mKernelUidCpuTimeReader.removeUid(isolatedUid);
        mKernelUidCpuTimeReader.removeUid(isolatedUid);
        mKernelUidCpuFreqTimeReader.removeUid(isolatedUid);
    }
    }


    public int mapUid(int uid) {
    public int mapUid(int uid) {
@@ -10351,6 +10352,9 @@ public class BatteryStatsImpl extends BatteryStats {
                    public void onUidCpuFreqTime(int uid, long[] cpuFreqTimeMs) {
                    public void onUidCpuFreqTime(int uid, long[] cpuFreqTimeMs) {
                        uid = mapUid(uid);
                        uid = mapUid(uid);
                        if (Process.isIsolated(uid)) {
                        if (Process.isIsolated(uid)) {
                            mKernelUidCpuFreqTimeReader.removeUid(uid);
                            Slog.d(TAG, "Got freq readings for an isolated uid with"
                                    + " no mapping to owning uid: " + uid);
                            return;
                            return;
                        }
                        }
                        final Uid u = getUidStatsLocked(uid);
                        final Uid u = getUidStatsLocked(uid);
@@ -11019,6 +11023,7 @@ public class BatteryStatsImpl extends BatteryStats {
     */
     */
    public void removeUidStatsLocked(int uid) {
    public void removeUidStatsLocked(int uid) {
        mKernelUidCpuTimeReader.removeUid(uid);
        mKernelUidCpuTimeReader.removeUid(uid);
        mKernelUidCpuFreqTimeReader.removeUid(uid);
        mUidStats.remove(uid);
        mUidStats.remove(uid);
    }
    }


+4 −0
Original line number Original line Diff line number Diff line
@@ -72,6 +72,10 @@ public class KernelUidCpuFreqTimeReader {
        }
        }
    }
    }


    public void removeUid(int uid) {
        mLastUidCpuFreqTimeMs.delete(uid);
    }

    @VisibleForTesting
    @VisibleForTesting
    public void readDelta(BufferedReader reader, @Nullable Callback callback) throws IOException {
    public void readDelta(BufferedReader reader, @Nullable Callback callback) throws IOException {
        String line = reader.readLine();
        String line = reader.readLine();