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

Commit 120d7b21 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "BatteryStats: Stop reading kernel memory stats when unvailable" into oc-dev

parents 89d64cbb 61d2d372
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import android.util.Slog;
import com.android.internal.annotations.VisibleForTesting;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

@@ -24,14 +25,25 @@ import java.io.IOException;
public class KernelMemoryBandwidthStats {
    private static final String TAG = "KernelMemoryBandwidthStats";

    final protected LongSparseLongArray mBandwidthEntries = new LongSparseLongArray();
    private static final String mSysfsFile = "/sys/kernel/memory_state_time/show_stat";
    private static final boolean DEBUG = false;

    protected final LongSparseLongArray mBandwidthEntries = new LongSparseLongArray();
    private boolean mStatsDoNotExist = false;

    public void updateStats() {
        if (mStatsDoNotExist) {
            // Skip reading.
            return;
        }

        StrictMode.ThreadPolicy policy = StrictMode.allowThreadDiskReads();
        try (BufferedReader reader = new BufferedReader(new FileReader(mSysfsFile))) {
            parseStats(reader);
        } catch (FileNotFoundException e) {
            Slog.w(TAG, "No kernel memory bandwidth stats available");
            mBandwidthEntries.clear();
            mStatsDoNotExist = true;
        } catch (IOException e) {
            Slog.e(TAG, "Failed to read memory bandwidth: " + e.getMessage());
            mBandwidthEntries.clear();