Merge "Address race condition in procstate time tracking" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b1f548e3e4
@@ -16,7 +16,6 @@
|
||||
|
||||
package android.os;
|
||||
|
||||
import static android.app.ActivityManager.PROCESS_STATE_BOUND_TOP;
|
||||
import static android.os.BatteryStatsManager.NUM_WIFI_STATES;
|
||||
import static android.os.BatteryStatsManager.NUM_WIFI_SUPPL_STATES;
|
||||
|
||||
@@ -903,9 +902,9 @@ public abstract class BatteryStats implements Parcelable {
|
||||
* is not attributed to any non-critical process states.
|
||||
*/
|
||||
public static final int[] CRITICAL_PROC_STATES = {
|
||||
PROCESS_STATE_TOP,
|
||||
PROCESS_STATE_BOUND_TOP, PROCESS_STATE_FOREGROUND_SERVICE,
|
||||
PROCESS_STATE_FOREGROUND
|
||||
Uid.PROCESS_STATE_TOP,
|
||||
Uid.PROCESS_STATE_FOREGROUND_SERVICE,
|
||||
Uid.PROCESS_STATE_FOREGROUND
|
||||
};
|
||||
|
||||
public abstract long getProcessStateTime(int state, long elapsedRealtimeUs, int which);
|
||||
|
||||
@@ -584,7 +584,7 @@ public class BstatsCpuTimesValidationTest {
|
||||
actualCpuTimeMs += cpuTimesMs[i];
|
||||
}
|
||||
assertApproximateValue("Incorrect total cpu time, " + msgCpuTimes,
|
||||
2 * WORK_DURATION_MS, actualCpuTimeMs);
|
||||
WORK_DURATION_MS, actualCpuTimeMs);
|
||||
|
||||
batteryOffScreenOn();
|
||||
} finally {
|
||||
@@ -656,8 +656,14 @@ public class BstatsCpuTimesValidationTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void assertApproximateValue(String errorPrefix, long expectedValue, long actualValue) {
|
||||
assertValueRange(errorPrefix, actualValue, expectedValue * 0.5, expectedValue * 1.5);
|
||||
private void assertApproximateValue(String errorPrefix, long expectedValueMs,
|
||||
long actualValueMs) {
|
||||
// Allow the actual value to be 1 second smaller than the expected.
|
||||
// Also allow it to be up to 5 seconds larger, to accommodate the arbitrary
|
||||
// latency introduced by BatteryExternalStatsWorker.scheduleReadProcStateCpuTimes
|
||||
assertValueRange(errorPrefix, actualValueMs,
|
||||
expectedValueMs - 1000,
|
||||
expectedValueMs + 5000);
|
||||
}
|
||||
|
||||
private void assertValueRange(String errorPrefix,
|
||||
|
||||
Reference in New Issue
Block a user