Merge "BatteryStats: Allow for sample errors in wlan stats" into nyc-dev

am: 135c4760fd

* commit '135c4760fddc7809ea5f7e9d58bc3f4b3a076875':
  BatteryStats: Allow for sample errors in wlan stats

Change-Id: Ia7440d790dfe6f1c1e9d7c564cd9cc4f9df6342d
This commit is contained in:
Roshan Pius
2016-05-25 23:59:47 +00:00
committed by android-build-merger

View File

@@ -88,6 +88,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub
*/ */
private static final long EXTERNAL_STATS_SYNC_TIMEOUT_MILLIS = 2000; private static final long EXTERNAL_STATS_SYNC_TIMEOUT_MILLIS = 2000;
// There is some accuracy error in wifi reports so allow some slop in the results.
private static final long MAX_WIFI_STATS_SAMPLE_ERROR_MILLIS = 750;
private static IBatteryStats sService; private static IBatteryStats sService;
final BatteryStatsImpl mStats; final BatteryStatsImpl mStats;
@@ -1338,10 +1341,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub
} else { } else {
final long totalActiveTimeMs = txTimeMs + rxTimeMs; final long totalActiveTimeMs = txTimeMs + rxTimeMs;
long maxExpectedIdleTimeMs; long maxExpectedIdleTimeMs;
// Active time can never be greater than the total time, the stats received seem
// to be corrupt.
if (totalActiveTimeMs > timePeriodMs) { if (totalActiveTimeMs > timePeriodMs) {
maxExpectedIdleTimeMs = timePeriodMs; // Cap the max idle time at zero since the active time consumed the whole time
maxExpectedIdleTimeMs = 0;
if (totalActiveTimeMs > timePeriodMs + MAX_WIFI_STATS_SAMPLE_ERROR_MILLIS) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("Total Active time "); sb.append("Total Active time ");
TimeUtils.formatDuration(totalActiveTimeMs, sb); TimeUtils.formatDuration(totalActiveTimeMs, sb);
@@ -1364,6 +1367,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
TimeUtils.formatDuration(latest.mControllerTxTimeMs, sb); TimeUtils.formatDuration(latest.mControllerTxTimeMs, sb);
sb.append(" e=").append(latest.mControllerEnergyUsed); sb.append(" e=").append(latest.mControllerEnergyUsed);
Slog.wtf(TAG, sb.toString()); Slog.wtf(TAG, sb.toString());
}
} else { } else {
maxExpectedIdleTimeMs = timePeriodMs - totalActiveTimeMs; maxExpectedIdleTimeMs = timePeriodMs - totalActiveTimeMs;
} }