summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Suren Baghdasaryan <surenb@google.com> 2021-02-23 19:06:48 -0800
committer Suren Baghdasaryan <surenb@google.com> 2021-02-26 18:59:01 +0000
commit1ec9894cd61edcb53950fde6a719c24bc3e9c920 (patch)
treea5820e5bca934300cf7b06e5c2f3244e567b10e1
parent5cc4c3ff910a12ed1516a9bf69ffbfb5bf3bf89c (diff)
Fix total memtrack Graphics and GL calculations
Some execution paths do not account memtrack reported Graphics and GL values in the calculations of memtrack total memory consumption. Fix this by adding the missing parts. Bug: 174546244 Signed-off-by: Suren Baghdasaryan <surenb@google.com> Change-Id: I77f06322fbb06ffa33115c1469aba80e59247904 Merged-In: I77f06322fbb06ffa33115c1469aba80e59247904
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index a8707ee0ffe8..e4d2382574ba 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -13386,6 +13386,8 @@ public class ActivityManagerService extends IActivityManager.Stub
}
endTime = SystemClock.currentThreadTimeMillis();
hasSwapPss = mi.hasSwappedOutPss;
+ memtrackGraphics = mi.getOtherPrivate(Debug.MemoryInfo.OTHER_GRAPHICS);
+ memtrackGl = mi.getOtherPrivate(Debug.MemoryInfo.OTHER_GL);
} else {
reportType = ProcessStats.ADD_PSS_EXTERNAL;
startTime = SystemClock.currentThreadTimeMillis();
@@ -13539,6 +13541,8 @@ public class ActivityManagerService extends IActivityManager.Stub
if (!Debug.getMemoryInfo(st.pid, mi)) {
continue;
}
+ memtrackGraphics = mi.getOtherPrivate(Debug.MemoryInfo.OTHER_GRAPHICS);
+ memtrackGl = mi.getOtherPrivate(Debug.MemoryInfo.OTHER_GL);
} else {
long pss = Debug.getPss(st.pid, tmpLong, memtrackTmp);
if (pss == 0) {
@@ -14439,6 +14443,8 @@ public class ActivityManagerService extends IActivityManager.Stub
});
}
final int statsCount = stats.size();
+ long totalMemtrackGraphics = 0;
+ long totalMemtrackGl = 0;
for (int i = 0; i < statsCount; i++) {
ProcessCpuTracker.Stats st = stats.get(i);
long pss = Debug.getPss(st.pid, swaptrackTmp, memtrackTmp);
@@ -14449,6 +14455,8 @@ public class ActivityManagerService extends IActivityManager.Stub
mi.pss = pss;
mi.swapPss = swaptrackTmp[1];
mi.memtrack = memtrackTmp[0];
+ totalMemtrackGraphics += memtrackTmp[1];
+ totalMemtrackGl += memtrackTmp[2];
memInfos.add(mi);
}
}
@@ -14457,20 +14465,18 @@ public class ActivityManagerService extends IActivityManager.Stub
long totalPss = 0;
long totalSwapPss = 0;
long totalMemtrack = 0;
- long totalMemtrackGraphics = 0;
- long totalMemtrackGl = 0;
for (int i=0, N=memInfos.size(); i<N; i++) {
ProcessMemInfo mi = memInfos.get(i);
if (mi.pss == 0) {
mi.pss = Debug.getPss(mi.pid, swaptrackTmp, memtrackTmp);
mi.swapPss = swaptrackTmp[1];
mi.memtrack = memtrackTmp[0];
+ totalMemtrackGraphics += memtrackTmp[1];
+ totalMemtrackGl += memtrackTmp[2];
}
totalPss += mi.pss;
totalSwapPss += mi.swapPss;
totalMemtrack += mi.memtrack;
- totalMemtrackGraphics += memtrackTmp[1];
- totalMemtrackGl += memtrackTmp[2];
}
Collections.sort(memInfos, new Comparator<ProcessMemInfo>() {
@Override public int compare(ProcessMemInfo lhs, ProcessMemInfo rhs) {