summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ella Su <haixiaosu@google.com> 2023-03-29 14:11:49 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-29 14:11:49 +0000
commitee429d930921c7ea490b83a3a6e5f453fc22e359 (patch)
treebef797a5604b7eb3dca1f92af8cf29c72f58933c
parent265b4ef66a4cd1248f858663917b3bc6a9c2905e (diff)
parent16cc460af66fa8f35cd165b573de205671cf4573 (diff)
Merge "Add shmem through" into udc-dev
-rw-r--r--services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java12
-rw-r--r--services/core/java/com/android/server/stats/pull/StatsPullAtomService.java6
2 files changed, 12 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java b/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java
index f653e4b26438..6cb6dc07f8b8 100644
--- a/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java
+++ b/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java
@@ -28,7 +28,8 @@ public final class ProcfsMemoryUtil {
"VmHWM:",
"VmRSS:",
"RssAnon:",
- "VmSwap:"
+ "RssShmem:",
+ "VmSwap:",
};
private static final String[] VMSTAT_KEYS = new String[] {
"oom_kill"
@@ -38,7 +39,7 @@ public final class ProcfsMemoryUtil {
/**
* Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS,
- * VmSwap fields in /proc/pid/status in kilobytes or null if not available.
+ * VmSwap, RssShmem fields in /proc/pid/status in kilobytes or null if not available.
*/
@Nullable
public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) {
@@ -46,8 +47,9 @@ public final class ProcfsMemoryUtil {
output[0] = -1;
output[3] = -1;
output[4] = -1;
+ output[5] = -1;
Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output);
- if (output[0] == -1 || output[3] == -1 || output[4] == -1) {
+ if (output[0] == -1 || output[3] == -1 || output[4] == -1 || output[5] == -1) {
// Could not open or parse file.
return null;
}
@@ -56,7 +58,8 @@ public final class ProcfsMemoryUtil {
snapshot.rssHighWaterMarkInKilobytes = (int) output[1];
snapshot.rssInKilobytes = (int) output[2];
snapshot.anonRssInKilobytes = (int) output[3];
- snapshot.swapInKilobytes = (int) output[4];
+ snapshot.rssShmemKilobytes = (int) output[4];
+ snapshot.swapInKilobytes = (int) output[5];
return snapshot;
}
@@ -101,6 +104,7 @@ public final class ProcfsMemoryUtil {
public int rssInKilobytes;
public int anonRssInKilobytes;
public int swapInKilobytes;
+ public int rssShmemKilobytes;
}
/** Reads and parses selected entries of /proc/vmstat. */
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index f8a4b04180c3..b2f48d9e3d8c 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -2290,7 +2290,8 @@ public class StatsPullAtomService extends SystemService {
managedProcess.processName, managedProcess.pid, managedProcess.oomScore,
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
- gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices));
+ gpuMemPerPid.get(managedProcess.pid), managedProcess.hasForegroundServices,
+ snapshot.rssShmemKilobytes));
}
// Complement the data with native system processes. Given these measurements can be taken
// in response to LMKs happening, we want to first collect the managed app stats (to
@@ -2309,7 +2310,8 @@ public class StatsPullAtomService extends SystemService {
-1001 /*Placeholder for native processes, OOM_SCORE_ADJ_MIN - 1.*/,
snapshot.rssInKilobytes, snapshot.anonRssInKilobytes, snapshot.swapInKilobytes,
snapshot.anonRssInKilobytes + snapshot.swapInKilobytes,
- gpuMemPerPid.get(pid), false /* has_foreground_services */));
+ gpuMemPerPid.get(pid), false /* has_foreground_services */,
+ snapshot.rssShmemKilobytes));
}
return StatsManager.PULL_SUCCESS;
}