Merge "CPU time min threshold for CpuTimePerUidFreq" into rvc-qpr-dev am: cc3ff5cd59
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12977768 Change-Id: Ie34dcb37362006d5c0ba87c4d6b8139664d2fb9d
This commit is contained in:
@@ -249,6 +249,13 @@ public class StatsPullAtomService extends SystemService {
|
||||
// 20% as a conservative estimate.
|
||||
private static final int MAX_PROCSTATS_RAW_SHARD_SIZE = (int) (MAX_PROCSTATS_SHARD_SIZE * 1.20);
|
||||
|
||||
/**
|
||||
* Threshold to filter out small CPU times at frequency per UID. Those small values appear
|
||||
* because of more precise accounting in a BPF program. Discarding them reduces the data by at
|
||||
* least 20% with negligible error.
|
||||
*/
|
||||
private static final int MIN_CPU_TIME_PER_UID_FREQ = 10;
|
||||
|
||||
private final Object mThermalLock = new Object();
|
||||
@GuardedBy("mThermalLock")
|
||||
private IThermalService mThermalService;
|
||||
@@ -1556,7 +1563,7 @@ public class StatsPullAtomService extends SystemService {
|
||||
int pullCpuTimePerUidFreqLocked(int atomTag, List<StatsEvent> pulledData) {
|
||||
mCpuUidFreqTimeReader.readAbsolute((uid, cpuFreqTimeMs) -> {
|
||||
for (int freqIndex = 0; freqIndex < cpuFreqTimeMs.length; ++freqIndex) {
|
||||
if (cpuFreqTimeMs[freqIndex] != 0) {
|
||||
if (cpuFreqTimeMs[freqIndex] >= MIN_CPU_TIME_PER_UID_FREQ) {
|
||||
StatsEvent e = StatsEvent.newBuilder()
|
||||
.setAtomId(atomTag)
|
||||
.writeInt(uid)
|
||||
|
||||
Reference in New Issue
Block a user