From bf2e0a9f477a347d7560279c5dce1e2940b6f1ca Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 7 Oct 2022 08:32:31 -0700 Subject: [PATCH] Show userId in meminfo dump Makes it easier to identify which user a process is running on. It doesn't show the userId for user 0 to keep things simple for single-user devices. Bug: 257285945 Test: dumpsys meminfo Change-Id: I6197325d41ffa13ba5c6a36fe36c433b71b0225a --- .../server/am/ActivityManagerService.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 593e21a54f15c..ee99fad856611 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -11050,11 +11050,13 @@ public class ActivityManagerService extends IActivityManager.Stub final long pss; final long swapPss; final long mRss; - final int id; + final int id; // pid + final int userId; final boolean hasActivities; ArrayList subitems; MemItem(String label, String shortLabel, long pss, long swapPss, long rss, int id, + @UserIdInt int userId, boolean hasActivities) { this.isProc = true; this.label = label; @@ -11063,6 +11065,7 @@ public class ActivityManagerService extends IActivityManager.Stub this.swapPss = swapPss; this.mRss = rss; this.id = id; + this.userId = userId; this.hasActivities = hasActivities; } @@ -11074,6 +11077,7 @@ public class ActivityManagerService extends IActivityManager.Stub this.swapPss = swapPss; this.mRss = rss; this.id = id; + this.userId = UserHandle.USER_SYSTEM; this.hasActivities = false; } } @@ -11108,8 +11112,9 @@ public class ActivityManagerService extends IActivityManager.Stub pw.printf("%s%s: %-60s (%s in swap)\n", prefix, stringifyKBSize(mi.pss), mi.label, stringifyKBSize(mi.swapPss)); } else { - pw.printf("%s%s: %s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss), - mi.label); + pw.printf("%s%s: %s %s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss), + mi.label, + mi.userId != UserHandle.USER_SYSTEM ? "(user " + mi.userId + ")" : ""); } } else if (mi.isProc) { pw.print("proc,"); pw.print(tag); pw.print(","); pw.print(mi.shortLabel); @@ -11601,7 +11606,7 @@ public class ActivityManagerService extends IActivityManager.Stub ss[INDEX_TOTAL_MEMTRACK_GL] += memtrackGl; MemItem pssItem = new MemItem(r.processName + " (pid " + pid + (hasActivities ? " / activities)" : ")"), r.processName, myTotalPss, - myTotalSwapPss, myTotalRss, pid, hasActivities); + myTotalSwapPss, myTotalRss, pid, r.userId, hasActivities); procMems.add(pssItem); procMemsMap.put(pid, pssItem); @@ -11698,7 +11703,7 @@ public class ActivityManagerService extends IActivityManager.Stub MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")", st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, - st.pid, false); + st.pid, UserHandle.getUserId(st.uid), false); procMems.add(pssItem); ss[INDEX_NATIVE_PSS] += info.nativePss; @@ -12244,7 +12249,7 @@ public class ActivityManagerService extends IActivityManager.Stub ss[INDEX_TOTAL_RSS] += myTotalRss; MemItem pssItem = new MemItem(r.processName + " (pid " + pid + (hasActivities ? " / activities)" : ")"), r.processName, myTotalPss, - myTotalSwapPss, myTotalRss, pid, hasActivities); + myTotalSwapPss, myTotalRss, pid, r.userId, hasActivities); procMems.add(pssItem); procMemsMap.put(pid, pssItem); @@ -12332,7 +12337,7 @@ public class ActivityManagerService extends IActivityManager.Stub MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")", st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, - st.pid, false); + st.pid, UserHandle.getUserId(st.uid), false); procMems.add(pssItem); ss[INDEX_NATIVE_PSS] += info.nativePss;