summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sudheer Shanka <sudheersai@google.com> 2017-06-02 21:18:09 +0000
committer android-build-merger <android-build-merger@google.com> 2017-06-02 21:18:09 +0000
commit599bc3f19fcae3da8f2b48606737f44b05658ca4 (patch)
tree0834d400230242ec8a05ccb5545d2278bd086862
parent64fafcd35ddcce44e80123ee1d3d819bc4f6e9e7 (diff)
parentab17493ef33f08c6e131ea1e16a9b4d6052b4fa8 (diff)
Merge "Avoid excessive logging when the necessary proc file is unavailable." into oc-dev
am: ab17493ef3 Change-Id: I649da92e3f5451886543f7edd8e107166b8c0125
-rw-r--r--core/java/com/android/internal/os/KernelUidCpuFreqTimeReader.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/java/com/android/internal/os/KernelUidCpuFreqTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuFreqTimeReader.java
index 568c8830d35b..9fbc4a8871b3 100644
--- a/core/java/com/android/internal/os/KernelUidCpuFreqTimeReader.java
+++ b/core/java/com/android/internal/os/KernelUidCpuFreqTimeReader.java
@@ -53,10 +53,21 @@ public class KernelUidCpuFreqTimeReader {
private SparseArray<long[]> mLastUidCpuFreqTimeMs = new SparseArray<>();
+ // We check the existence of proc file a few times (just in case it is not ready yet when we
+ // start reading) and if it is not available, we simply ignore further read requests.
+ private static final int TOTAL_READ_ERROR_COUNT = 5;
+ private int mReadErrorCounter;
+ private boolean mProcFileAvailable;
+
public void readDelta(@Nullable Callback callback) {
+ if (!mProcFileAvailable && mReadErrorCounter >= TOTAL_READ_ERROR_COUNT) {
+ return;
+ }
try (BufferedReader reader = new BufferedReader(new FileReader(UID_TIMES_PROC_FILE))) {
readDelta(reader, callback);
+ mProcFileAvailable = true;
} catch (IOException e) {
+ mReadErrorCounter++;
Slog.e(TAG, "Failed to read " + UID_TIMES_PROC_FILE + ": " + e);
}
}