Fix CPU power bracket initialization when /proc/uid_time_in_state file is unsupported

Bug: 251552446
Test: atest FrameworksServicesTests
Change-Id: I99c4133b2eef8cb52760fe60f378860da36583d3
This commit is contained in:
Dmitri Plotnikov
2022-10-06 18:10:45 -07:00
parent 9e1f0003d3
commit 6cd1c3dc4e

View File

@@ -10818,6 +10818,8 @@ public class BatteryStatsImpl extends BatteryStats {
public void setPowerProfileLocked(PowerProfile profile) {
mPowerProfile = profile;
int totalSpeedStepCount = 0;
// We need to initialize the KernelCpuSpeedReaders to read from
// the first cpu of each core. Once we have the PowerProfile, we have access to this
// information.
@@ -10829,11 +10831,12 @@ public class BatteryStatsImpl extends BatteryStats {
mKernelCpuSpeedReaders[i] = new KernelCpuSpeedReader(firstCpuOfCluster,
numSpeedSteps);
firstCpuOfCluster += mPowerProfile.getNumCoresInCpuCluster(i);
totalSpeedStepCount += numSpeedSteps;
}
// Initialize CPU power bracket map, which combines CPU states (cluster/freq pairs)
// into a small number of brackets
mCpuPowerBracketMap = new int[getCpuFreqCount()];
mCpuPowerBracketMap = new int[totalSpeedStepCount];
int index = 0;
int numCpuClusters = mPowerProfile.getNumCpuClusters();
for (int cluster = 0; cluster < numCpuClusters; cluster++) {