From 44fc5760dcf088d9181339c1ffb8614164ad607a Mon Sep 17 00:00:00 2001 From: Michael Wachenschwanz Date: Mon, 12 Jul 2021 20:16:27 -0700 Subject: [PATCH] Only fillLowPowerStats when needed This fixes a boottime regression. Prior to fix, FinishBooting took ~900ms to complete After fix, FinishBooting took ~120ms to complete Fixes: 193074223 Test: atest google/perf/boottime/boottime-test Change-Id: If85a93f1f92c8af8251c870bf576bb125778b011 --- .../com/android/server/am/BatteryExternalStatsWorker.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java index 67dfb8051f93c..0c633cacda924 100644 --- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java +++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java @@ -579,8 +579,10 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync { } } - // Collect the latest low power stats without holding the mStats lock. - mStats.fillLowPowerStats(); + if ((updateFlags & BatteryStatsImpl.ExternalStatsSync.UPDATE_RPM) != 0) { + // Collect the latest low power stats without holding the mStats lock. + mStats.fillLowPowerStats(); + } final WifiActivityEnergyInfo wifiInfo = awaitControllerInfo(wifiReceiver); final BluetoothActivityEnergyInfo bluetoothInfo = awaitControllerInfo(bluetoothReceiver);