Merge "BatteryStats: Allow for sample errors in wlan stats" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
135c4760fd
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user