Loading services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java +5 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.PersistableBundle; import android.os.UserHandle; import android.text.format.DateFormat; import android.util.IndentingPrintWriter; import android.util.IntArray; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; Loading Loading @@ -347,7 +348,10 @@ class AggregatedPowerStats { Set<Integer> uids = new HashSet<>(); for (int i = 0; i < mPowerComponentStats.size(); i++) { mPowerComponentStats.valueAt(i).collectUids(uids); IntArray activeUids = mPowerComponentStats.valueAt(i).getActiveUids(); for (int j = activeUids.size() - 1; j >= 0; j--) { uids.add(activeUids.get(j)); } } Integer[] allUids = uids.toArray(new Integer[uids.size()]); Loading services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java +7 −7 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ import static com.android.server.power.stats.processor.AggregatedPowerStatsConfi import android.os.BatteryConsumer; import android.os.PersistableBundle; import android.util.IntArray; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.BasePowerStatsLayout; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.DoubleSupplier; class BasePowerStatsProcessor extends PowerStatsProcessor { Loading Loading @@ -125,11 +124,12 @@ class BasePowerStatsProcessor extends PowerStatsProcessor { mCumulativeDischargeUah = 0; mCumulativeDischargeDurationMs = 0; List<Integer> uids = new ArrayList<>(); stats.collectUids(uids); // Note that we are calling `getUids` rather than `getActiveUids`, because this Processor // deals with duration rather than power estimation, so it needs to process *all* known // UIDs, not just the ones that contributed PowerStats IntArray uids = stats.getUids(); if (uids.size() != 0) { long durationMs = timestampMs - mStartTimestamp; if (!uids.isEmpty()) { for (int i = uids.size() - 1; i >= 0; i--) { long[] uidStats = new long[sStatsLayout.getUidStatsArrayLength()]; sStatsLayout.setUidUsageDuration(uidStats, durationMs); Loading services/core/java/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessor.java +9 −11 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.os.BatteryStats; import android.os.PersistableBundle; import android.os.Process; import android.util.IntArray; import com.android.internal.os.PowerStats; import com.android.server.power.stats.UsageBasedPowerEstimator; Loading @@ -27,7 +28,6 @@ import com.android.server.power.stats.format.BinaryStatePowerStatsLayout; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading Loading @@ -190,14 +190,14 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } computeDevicePowerEstimates(stats, mPlan, mEnergyConsumerSupported); combineDevicePowerEstimates(stats); List<Integer> uids = new ArrayList<>(); stats.collectUids(uids); IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { combineDevicePowerEstimates(stats); computeUidActivityTotals(stats, uids); computeUidPowerEstimates(stats, uids); } } protected void computeDevicePowerEstimates(PowerComponentAggregatedPowerStats stats, PowerEstimationPlan plan, boolean energyConsumerSupported) { Loading Loading @@ -239,8 +239,7 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } } private void computeUidActivityTotals(PowerComponentAggregatedPowerStats stats, List<Integer> uids) { private void computeUidActivityTotals(PowerComponentAggregatedPowerStats stats, IntArray uids) { for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) { UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i); Intermediates intermediates = Loading @@ -259,8 +258,7 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } } private void computeUidPowerEstimates(PowerComponentAggregatedPowerStats stats, List<Integer> uids) { private void computeUidPowerEstimates(PowerComponentAggregatedPowerStats stats, IntArray uids) { for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) { UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i); Intermediates intermediates = Loading services/core/java/com/android/server/power/stats/processor/BluetoothPowerStatsProcessor.java +12 −10 Original line number Diff line number Diff line Loading @@ -16,12 +16,13 @@ package com.android.server.power.stats.processor; import android.util.IntArray; import com.android.internal.os.PowerProfile; import com.android.internal.os.PowerStats; import com.android.server.power.stats.UsageBasedPowerEstimator; import com.android.server.power.stats.format.BluetoothPowerStatsLayout; import java.util.ArrayList; import java.util.List; class BluetoothPowerStatsProcessor extends PowerStatsProcessor { Loading Loading @@ -118,18 +119,19 @@ class BluetoothPowerStatsProcessor extends PowerStatsProcessor { combineDeviceStateEstimates(); ArrayList<Integer> uids = new ArrayList<>(); stats.collectUids(uids); if (!uids.isEmpty()) { for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { computeUidActivityTotals(stats, uid, mPlan.uidStateEstimates.get(i)); IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { computeUidActivityTotals(stats, uid, mPlan.uidStateEstimates.get(j)); } } for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { computeUidPowerEstimates(stats, uid, mPlan.uidStateEstimates.get(i)); for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { computeUidPowerEstimates(stats, uid, mPlan.uidStateEstimates.get(j)); } } } Loading services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java +7 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.power.stats.processor; import android.annotation.Nullable; import android.os.BatteryConsumer; import android.util.ArraySet; import android.util.IntArray; import android.util.Log; import com.android.internal.os.CpuScalingPolicies; Loading @@ -27,7 +28,6 @@ import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.CpuPowerStatsLayout; import com.android.server.power.stats.format.WakelockPowerStatsLayout; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; Loading Loading @@ -189,12 +189,12 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { estimatePowerByDeviceState(stats, intermediates, wakelockStats); combineDeviceStateEstimates(); ArrayList<Integer> uids = new ArrayList<>(); stats.collectUids(uids); if (!uids.isEmpty()) { for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i), IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(j), wakelockStats); } } Loading Loading
services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java +5 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.PersistableBundle; import android.os.UserHandle; import android.text.format.DateFormat; import android.util.IndentingPrintWriter; import android.util.IntArray; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; Loading Loading @@ -347,7 +348,10 @@ class AggregatedPowerStats { Set<Integer> uids = new HashSet<>(); for (int i = 0; i < mPowerComponentStats.size(); i++) { mPowerComponentStats.valueAt(i).collectUids(uids); IntArray activeUids = mPowerComponentStats.valueAt(i).getActiveUids(); for (int j = activeUids.size() - 1; j >= 0; j--) { uids.add(activeUids.get(j)); } } Integer[] allUids = uids.toArray(new Integer[uids.size()]); Loading
services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java +7 −7 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ import static com.android.server.power.stats.processor.AggregatedPowerStatsConfi import android.os.BatteryConsumer; import android.os.PersistableBundle; import android.util.IntArray; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.BasePowerStatsLayout; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.DoubleSupplier; class BasePowerStatsProcessor extends PowerStatsProcessor { Loading Loading @@ -125,11 +124,12 @@ class BasePowerStatsProcessor extends PowerStatsProcessor { mCumulativeDischargeUah = 0; mCumulativeDischargeDurationMs = 0; List<Integer> uids = new ArrayList<>(); stats.collectUids(uids); // Note that we are calling `getUids` rather than `getActiveUids`, because this Processor // deals with duration rather than power estimation, so it needs to process *all* known // UIDs, not just the ones that contributed PowerStats IntArray uids = stats.getUids(); if (uids.size() != 0) { long durationMs = timestampMs - mStartTimestamp; if (!uids.isEmpty()) { for (int i = uids.size() - 1; i >= 0; i--) { long[] uidStats = new long[sStatsLayout.getUidStatsArrayLength()]; sStatsLayout.setUidUsageDuration(uidStats, durationMs); Loading
services/core/java/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessor.java +9 −11 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.IntDef; import android.os.BatteryStats; import android.os.PersistableBundle; import android.os.Process; import android.util.IntArray; import com.android.internal.os.PowerStats; import com.android.server.power.stats.UsageBasedPowerEstimator; Loading @@ -27,7 +28,6 @@ import com.android.server.power.stats.format.BinaryStatePowerStatsLayout; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; Loading Loading @@ -190,14 +190,14 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } computeDevicePowerEstimates(stats, mPlan, mEnergyConsumerSupported); combineDevicePowerEstimates(stats); List<Integer> uids = new ArrayList<>(); stats.collectUids(uids); IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { combineDevicePowerEstimates(stats); computeUidActivityTotals(stats, uids); computeUidPowerEstimates(stats, uids); } } protected void computeDevicePowerEstimates(PowerComponentAggregatedPowerStats stats, PowerEstimationPlan plan, boolean energyConsumerSupported) { Loading Loading @@ -239,8 +239,7 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } } private void computeUidActivityTotals(PowerComponentAggregatedPowerStats stats, List<Integer> uids) { private void computeUidActivityTotals(PowerComponentAggregatedPowerStats stats, IntArray uids) { for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) { UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i); Intermediates intermediates = Loading @@ -259,8 +258,7 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor { } } private void computeUidPowerEstimates(PowerComponentAggregatedPowerStats stats, List<Integer> uids) { private void computeUidPowerEstimates(PowerComponentAggregatedPowerStats stats, IntArray uids) { for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) { UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i); Intermediates intermediates = Loading
services/core/java/com/android/server/power/stats/processor/BluetoothPowerStatsProcessor.java +12 −10 Original line number Diff line number Diff line Loading @@ -16,12 +16,13 @@ package com.android.server.power.stats.processor; import android.util.IntArray; import com.android.internal.os.PowerProfile; import com.android.internal.os.PowerStats; import com.android.server.power.stats.UsageBasedPowerEstimator; import com.android.server.power.stats.format.BluetoothPowerStatsLayout; import java.util.ArrayList; import java.util.List; class BluetoothPowerStatsProcessor extends PowerStatsProcessor { Loading Loading @@ -118,18 +119,19 @@ class BluetoothPowerStatsProcessor extends PowerStatsProcessor { combineDeviceStateEstimates(); ArrayList<Integer> uids = new ArrayList<>(); stats.collectUids(uids); if (!uids.isEmpty()) { for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { computeUidActivityTotals(stats, uid, mPlan.uidStateEstimates.get(i)); IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { computeUidActivityTotals(stats, uid, mPlan.uidStateEstimates.get(j)); } } for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { computeUidPowerEstimates(stats, uid, mPlan.uidStateEstimates.get(i)); for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { computeUidPowerEstimates(stats, uid, mPlan.uidStateEstimates.get(j)); } } } Loading
services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java +7 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.power.stats.processor; import android.annotation.Nullable; import android.os.BatteryConsumer; import android.util.ArraySet; import android.util.IntArray; import android.util.Log; import com.android.internal.os.CpuScalingPolicies; Loading @@ -27,7 +28,6 @@ import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.CpuPowerStatsLayout; import com.android.server.power.stats.format.WakelockPowerStatsLayout; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; Loading Loading @@ -189,12 +189,12 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { estimatePowerByDeviceState(stats, intermediates, wakelockStats); combineDeviceStateEstimates(); ArrayList<Integer> uids = new ArrayList<>(); stats.collectUids(uids); if (!uids.isEmpty()) { for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i), IntArray uids = stats.getActiveUids(); if (uids.size() != 0) { for (int i = uids.size() - 1; i >= 0; i--) { int uid = uids.get(i); for (int j = 0; j < mPlan.uidStateEstimates.size(); j++) { estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(j), wakelockStats); } } Loading