am 4eb6c10d: am 7608f541: am 59d72c86: Merge "BatteryStats: Add debug logging to find source of b/22716723" into mnc-dev
* commit '4eb6c10d2d9da3ac4d31fb4fadce08a08940464f': BatteryStats: Add debug logging to find source of b/22716723
This commit is contained in:
@@ -7915,6 +7915,8 @@ public final class BatteryStatsImpl extends BatteryStats {
|
||||
return;
|
||||
}
|
||||
|
||||
// Record whether we've seen a non-zero time (for debugging b/22716723).
|
||||
boolean seenNonZeroTime = false;
|
||||
for (Map.Entry<String, KernelWakelockStats.Entry> ent : wakelockStats.entrySet()) {
|
||||
String name = ent.getKey();
|
||||
KernelWakelockStats.Entry kws = ent.getValue();
|
||||
@@ -7928,17 +7930,31 @@ public final class BatteryStatsImpl extends BatteryStats {
|
||||
kwlt.updateCurrentReportedCount(kws.mCount);
|
||||
kwlt.updateCurrentReportedTotalTime(kws.mTotalTime);
|
||||
kwlt.setUpdateVersion(kws.mVersion);
|
||||
|
||||
if (kws.mVersion != wakelockStats.kernelWakelockVersion)
|
||||
seenNonZeroTime |= kws.mTotalTime > 0;
|
||||
}
|
||||
|
||||
int numWakelocksSetStale = 0;
|
||||
if (wakelockStats.size() != mKernelWakelockStats.size()) {
|
||||
// Set timers to stale if they didn't appear in /proc/wakelocks this time.
|
||||
for (Map.Entry<String, SamplingTimer> ent : mKernelWakelockStats.entrySet()) {
|
||||
SamplingTimer st = ent.getValue();
|
||||
if (st.getUpdateVersion() != wakelockStats.kernelWakelockVersion) {
|
||||
st.setStale();
|
||||
numWakelocksSetStale++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!seenNonZeroTime) {
|
||||
Slog.wtf(TAG, "All kernel wakelocks had time of zero");
|
||||
}
|
||||
|
||||
if (numWakelocksSetStale == mKernelWakelockStats.size()) {
|
||||
Slog.wtf(TAG, "All kernel wakelocks were set stale. new version=" +
|
||||
wakelockStats.kernelWakelockVersion);
|
||||
}
|
||||
}
|
||||
|
||||
// We use an anonymous class to access these variables,
|
||||
|
||||
@@ -75,6 +75,8 @@ public class KernelWakelockReader {
|
||||
is = new FileInputStream(sWakeupSourceFile);
|
||||
wakeup_sources = true;
|
||||
} catch (java.io.FileNotFoundException e2) {
|
||||
Slog.wtf(TAG, "neither " + sWakelockFile + " nor " +
|
||||
sWakeupSourceFile + " exists");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -82,6 +84,7 @@ public class KernelWakelockReader {
|
||||
len = is.read(buffer);
|
||||
is.close();
|
||||
} catch (java.io.IOException e) {
|
||||
Slog.wtf(TAG, "failed to read kernel wakelocks", e);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -171,6 +174,13 @@ public class KernelWakelockReader {
|
||||
numUpdatedWlNames++;
|
||||
}
|
||||
}
|
||||
} else if (!parsed) {
|
||||
try {
|
||||
Slog.wtf(TAG, "Failed to parse proc line: " +
|
||||
new String(wlBuffer, startIndex, endIndex - startIndex));
|
||||
} catch (Exception e) {
|
||||
Slog.wtf(TAG, "Failed to parse proc line!");
|
||||
}
|
||||
}
|
||||
startIndex = endIndex;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user