diff options
author | Suren Baghdasaryan <surenb@google.com> | 2023-12-06 21:52:28 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-12-06 21:52:28 +0000 |
commit | 7f598d4dd6078580bdd979c61ee592b72bcfccba (patch) | |
tree | d5d55374c2a94f55089b1341f8e1ed762e35282b /services/core/java/com/android/server/am/ActivityManagerService.java | |
parent | 8533e51597c92fc55a4624237a379d119fe501af (diff) | |
parent | 2cc1e7b8faf6446208b0e12f48dc191a4e7d19bc (diff) | |
download | base-7f598d4dd6078580bdd979c61ee592b72bcfccba.tar.gz |
Merge "ActivityManager: Include Private Dirty Pages in Meminfo" into main am: dff1d0ff15 am: 536524c058 am: 2cc1e7b8fa
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2853847
Change-Id: Ib1876a20bfc2aca005045c2fe8215736af026342
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'services/core/java/com/android/server/am/ActivityManagerService.java')
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 140 |
1 files changed, 95 insertions, 45 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 2d687de2f734..3e533a6ce601 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -1710,19 +1710,23 @@ public class ActivityManagerService extends IActivityManager.Stub private static final int INDEX_NATIVE_PSS = 0; private static final int INDEX_NATIVE_SWAP_PSS = 1; private static final int INDEX_NATIVE_RSS = 2; - private static final int INDEX_DALVIK_PSS = 3; - private static final int INDEX_DALVIK_SWAP_PSS = 4; - private static final int INDEX_DALVIK_RSS = 5; - private static final int INDEX_OTHER_PSS = 6; - private static final int INDEX_OTHER_SWAP_PSS = 7; - private static final int INDEX_OTHER_RSS = 8; - private static final int INDEX_TOTAL_PSS = 9; - private static final int INDEX_TOTAL_SWAP_PSS = 10; - private static final int INDEX_TOTAL_RSS = 11; - private static final int INDEX_TOTAL_NATIVE_PSS = 12; - private static final int INDEX_TOTAL_MEMTRACK_GRAPHICS = 13; - private static final int INDEX_TOTAL_MEMTRACK_GL = 14; - private static final int INDEX_LAST = 15; + private static final int INDEX_NATIVE_PRIVATE_DIRTY = 3; + private static final int INDEX_DALVIK_PSS = 4; + private static final int INDEX_DALVIK_SWAP_PSS = 5; + private static final int INDEX_DALVIK_RSS = 6; + private static final int INDEX_DALVIK_PRIVATE_DIRTY = 7; + private static final int INDEX_OTHER_PSS = 8; + private static final int INDEX_OTHER_SWAP_PSS = 9; + private static final int INDEX_OTHER_RSS = 10; + private static final int INDEX_OTHER_PRIVATE_DIRTY = 11; + private static final int INDEX_TOTAL_PSS = 12; + private static final int INDEX_TOTAL_SWAP_PSS = 13; + private static final int INDEX_TOTAL_RSS = 14; + private static final int INDEX_TOTAL_PRIVATE_DIRTY = 15; + private static final int INDEX_TOTAL_NATIVE_PSS = 16; + private static final int INDEX_TOTAL_MEMTRACK_GRAPHICS = 17; + private static final int INDEX_TOTAL_MEMTRACK_GL = 18; + private static final int INDEX_LAST = 19; /** * Used to notify activity lifecycle events. @@ -11712,13 +11716,14 @@ public class ActivityManagerService extends IActivityManager.Stub final long pss; final long swapPss; final long mRss; + final long mPrivateDirty; final int id; // pid final int userId; final boolean hasActivities; ArrayList<MemItem> subitems; - MemItem(String label, String shortLabel, long pss, long swapPss, long rss, int id, - @UserIdInt int userId, + MemItem(String label, String shortLabel, long pss, long swapPss, long rss, + long privateDirty, int id, @UserIdInt int userId, boolean hasActivities) { this.isProc = true; this.label = label; @@ -11726,18 +11731,21 @@ public class ActivityManagerService extends IActivityManager.Stub this.pss = pss; this.swapPss = swapPss; this.mRss = rss; + this.mPrivateDirty = privateDirty; this.id = id; this.userId = userId; this.hasActivities = hasActivities; } - MemItem(String label, String shortLabel, long pss, long swapPss, long rss, int id) { + MemItem(String label, String shortLabel, long pss, long swapPss, long rss, + long privateDirty, int id) { this.isProc = false; this.label = label; this.shortLabel = shortLabel; this.pss = pss; this.swapPss = swapPss; this.mRss = rss; + this.mPrivateDirty = privateDirty; this.id = id; this.userId = UserHandle.USER_SYSTEM; this.hasActivities = false; @@ -11762,7 +11770,7 @@ public class ActivityManagerService extends IActivityManager.Stub static final void dumpMemItems(PrintWriter pw, String prefix, String tag, ArrayList<MemItem> items, boolean sort, boolean isCompact, boolean dumpPss, - boolean dumpSwapPss) { + boolean dumpSwapPss, boolean dumpPrivateDirty) { if (sort && !isCompact) { sortMemItems(items, dumpPss); } @@ -11770,14 +11778,18 @@ public class ActivityManagerService extends IActivityManager.Stub for (int i=0; i<items.size(); i++) { MemItem mi = items.get(i); if (!isCompact) { - if (dumpPss && dumpSwapPss) { - pw.printf("%s%s: %-60s (%s in swap)\n", prefix, stringifyKBSize(mi.pss), - mi.label, stringifyKBSize(mi.swapPss)); - } else { - pw.printf("%s%s: %s%s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss), + pw.printf("%s%s: %s%s\n", prefix, stringifyKBSize(dumpPss ? mi.pss : mi.mRss), mi.label, mi.userId != UserHandle.USER_SYSTEM ? " (user " + mi.userId + ")" : ""); + if (dumpPss && dumpSwapPss) { + pw.printf("(%s in swap%s", stringifyKBSize(mi.swapPss), + dumpPrivateDirty ? ", " : ")"); } + if (dumpPrivateDirty) { + pw.printf("%s%s private dirty)", dumpSwapPss ? "" : "(", + stringifyKBSize(mi.mPrivateDirty)); + } + pw.printf("\n"); } else if (mi.isProc) { pw.print("proc,"); pw.print(tag); pw.print(","); pw.print(mi.shortLabel); pw.print(","); pw.print(mi.id); pw.print(","); @@ -11791,7 +11803,7 @@ public class ActivityManagerService extends IActivityManager.Stub } if (mi.subitems != null) { dumpMemItems(pw, prefix + " ", mi.shortLabel, mi.subitems, - true, isCompact, dumpPss, dumpSwapPss); + true, isCompact, dumpPss, dumpSwapPss, dumpPrivateDirty); } } } @@ -11959,6 +11971,7 @@ public class ActivityManagerService extends IActivityManager.Stub boolean isCheckinRequest; boolean dumpSwapPss; boolean dumpProto; + boolean mDumpPrivateDirty; } @NeverCompile // Avoid size overhead of debugging code. @@ -11977,6 +11990,7 @@ public class ActivityManagerService extends IActivityManager.Stub opts.isCheckinRequest = false; opts.dumpSwapPss = false; opts.dumpProto = asProto; + opts.mDumpPrivateDirty = false; int opti = 0; while (opti < args.length) { @@ -11999,6 +12013,8 @@ public class ActivityManagerService extends IActivityManager.Stub opts.dumpSummaryOnly = true; } else if ("-S".equals(opt)) { opts.dumpSwapPss = true; + } else if ("-p".equals(opt)) { + opts.mDumpPrivateDirty = true; } else if ("--unreachable".equals(opt)) { opts.dumpUnreachable = true; } else if ("--oom".equals(opt)) { @@ -12019,6 +12035,7 @@ public class ActivityManagerService extends IActivityManager.Stub pw.println(" -c: dump in a compact machine-parseable representation."); pw.println(" -s: dump only summary of application memory usage."); pw.println(" -S: dump also SwapPss."); + pw.println(" -p: dump also private dirty memory usage."); pw.println(" --oom: only show processes organized by oom adj."); pw.println(" --local: only collect details locally, don't call process."); pw.println(" --package: interpret process arg as package, dumping all"); @@ -12137,14 +12154,18 @@ public class ActivityManagerService extends IActivityManager.Stub EmptyArray.LONG; long[] dalvikSubitemRss = opts.dumpDalvik ? new long[Debug.MemoryInfo.NUM_DVK_STATS] : EmptyArray.LONG; + long[] dalvikSubitemPrivateDirty = opts.dumpDalvik + ? new long[Debug.MemoryInfo.NUM_DVK_STATS] : EmptyArray.LONG; long[] miscPss = new long[Debug.MemoryInfo.NUM_OTHER_STATS]; long[] miscSwapPss = new long[Debug.MemoryInfo.NUM_OTHER_STATS]; long[] miscRss = new long[Debug.MemoryInfo.NUM_OTHER_STATS]; + long[] miscPrivateDirty = new long[Debug.MemoryInfo.NUM_OTHER_STATS]; long[] memtrackTmp = new long[4]; long oomPss[] = new long[DUMP_MEM_OOM_LABEL.length]; long oomSwapPss[] = new long[DUMP_MEM_OOM_LABEL.length]; long[] oomRss = new long[DUMP_MEM_OOM_LABEL.length]; + long[] oomPrivateDirty = new long[DUMP_MEM_OOM_LABEL.length]; ArrayList<MemItem>[] oomProcs = (ArrayList<MemItem>[]) new ArrayList[DUMP_MEM_OOM_LABEL.length]; @@ -12240,6 +12261,7 @@ public class ActivityManagerService extends IActivityManager.Stub final long myTotalUss = mi.getTotalUss(); final long myTotalRss = mi.getTotalRss(); final long myTotalSwapPss = mi.getTotalSwappedOutPss(); + final long myTotalPrivateDirty = mi.getTotalPrivateDirty(); synchronized (mProcLock) { if (r.getThread() != null && oomAdj == r.mState.getSetAdjWithServices()) { @@ -12253,29 +12275,36 @@ public class ActivityManagerService extends IActivityManager.Stub ss[INDEX_TOTAL_PSS] += myTotalPss; ss[INDEX_TOTAL_SWAP_PSS] += myTotalSwapPss; ss[INDEX_TOTAL_RSS] += myTotalRss; + ss[INDEX_TOTAL_PRIVATE_DIRTY] += myTotalPrivateDirty; ss[INDEX_TOTAL_MEMTRACK_GRAPHICS] += memtrackGraphics; ss[INDEX_TOTAL_MEMTRACK_GL] += memtrackGl; MemItem pssItem = new MemItem(r.processName + " (pid " + pid + (hasActivities ? " / activities)" : ")"), r.processName, myTotalPss, - myTotalSwapPss, myTotalRss, pid, r.userId, hasActivities); + myTotalSwapPss, myTotalRss, myTotalPrivateDirty, + pid, r.userId, hasActivities); procMems.add(pssItem); procMemsMap.put(pid, pssItem); ss[INDEX_NATIVE_PSS] += mi.nativePss; ss[INDEX_NATIVE_SWAP_PSS] += mi.nativeSwappedOutPss; ss[INDEX_NATIVE_RSS] += mi.nativeRss; + ss[INDEX_NATIVE_PRIVATE_DIRTY] += mi.nativePrivateDirty; ss[INDEX_DALVIK_PSS] += mi.dalvikPss; ss[INDEX_DALVIK_SWAP_PSS] += mi.dalvikSwappedOutPss; ss[INDEX_DALVIK_RSS] += mi.dalvikRss; + ss[INDEX_DALVIK_PRIVATE_DIRTY] += mi.dalvikPrivateDirty; for (int j=0; j<dalvikSubitemPss.length; j++) { dalvikSubitemPss[j] += mi.getOtherPss(Debug.MemoryInfo.NUM_OTHER_STATS + j); dalvikSubitemSwapPss[j] += mi.getOtherSwappedOutPss(Debug.MemoryInfo.NUM_OTHER_STATS + j); + dalvikSubitemPrivateDirty[j] += + mi.getOtherPrivateDirty(Debug.MemoryInfo.NUM_OTHER_STATS + j); dalvikSubitemRss[j] += mi.getOtherRss(Debug.MemoryInfo.NUM_OTHER_STATS + j); } ss[INDEX_OTHER_PSS] += mi.otherPss; ss[INDEX_OTHER_RSS] += mi.otherRss; ss[INDEX_OTHER_SWAP_PSS] += mi.otherSwappedOutPss; + ss[INDEX_OTHER_PRIVATE_DIRTY] += mi.otherPrivateDirty; for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) { long mem = mi.getOtherPss(j); miscPss[j] += mem; @@ -12283,6 +12312,9 @@ public class ActivityManagerService extends IActivityManager.Stub mem = mi.getOtherSwappedOutPss(j); miscSwapPss[j] += mem; ss[INDEX_OTHER_SWAP_PSS] -= mem; + mem = mi.getOtherPrivateDirty(j); + miscPrivateDirty[j] += mem; + ss[INDEX_OTHER_PRIVATE_DIRTY] -= mem; mem = mi.getOtherRss(j); miscRss[j] += mem; ss[INDEX_OTHER_RSS] -= mem; @@ -12299,6 +12331,7 @@ public class ActivityManagerService extends IActivityManager.Stub && oomAdj < DUMP_MEM_OOM_ADJ[oomIndex + 1])) { oomPss[oomIndex] += myTotalPss; oomSwapPss[oomIndex] += myTotalSwapPss; + oomPrivateDirty[oomIndex] += myTotalPrivateDirty; if (oomProcs[oomIndex] == null) { oomProcs[oomIndex] = new ArrayList<MemItem>(); } @@ -12345,6 +12378,7 @@ public class ActivityManagerService extends IActivityManager.Stub final long myTotalPss = info.getTotalPss(); final long myTotalSwapPss = info.getTotalSwappedOutPss(); final long myTotalRss = info.getTotalRss(); + final long myTotalPrivateDirty = info.getTotalPrivateDirty(); ss[INDEX_TOTAL_PSS] += myTotalPss; ss[INDEX_TOTAL_SWAP_PSS] += myTotalSwapPss; ss[INDEX_TOTAL_RSS] += myTotalRss; @@ -12354,15 +12388,17 @@ public class ActivityManagerService extends IActivityManager.Stub MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")", st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, - st.pid, UserHandle.getUserId(st.uid), false); + myTotalPrivateDirty, st.pid, UserHandle.getUserId(st.uid), false); procMems.add(pssItem); ss[INDEX_NATIVE_PSS] += info.nativePss; ss[INDEX_NATIVE_SWAP_PSS] += info.nativeSwappedOutPss; ss[INDEX_NATIVE_RSS] += info.nativeRss; + ss[INDEX_NATIVE_PRIVATE_DIRTY] += info.nativePrivateDirty; ss[INDEX_DALVIK_PSS] += info.dalvikPss; ss[INDEX_DALVIK_SWAP_PSS] += info.dalvikSwappedOutPss; ss[INDEX_DALVIK_RSS] += info.dalvikRss; + ss[INDEX_DALVIK_PRIVATE_DIRTY] += info.dalvikPrivateDirty; for (int j = 0; j < dalvikSubitemPss.length; j++) { dalvikSubitemPss[j] += info.getOtherPss( Debug.MemoryInfo.NUM_OTHER_STATS + j); @@ -12370,10 +12406,13 @@ public class ActivityManagerService extends IActivityManager.Stub info.getOtherSwappedOutPss(Debug.MemoryInfo.NUM_OTHER_STATS + j); dalvikSubitemRss[j] += info.getOtherRss(Debug.MemoryInfo.NUM_OTHER_STATS + j); + dalvikSubitemPrivateDirty[j] += + info.getOtherPrivateDirty(Debug.MemoryInfo.NUM_OTHER_STATS + j); } ss[INDEX_OTHER_PSS] += info.otherPss; ss[INDEX_OTHER_SWAP_PSS] += info.otherSwappedOutPss; ss[INDEX_OTHER_RSS] += info.otherRss; + ss[INDEX_OTHER_PRIVATE_DIRTY] += info.otherPrivateDirty; for (int j = 0; j < Debug.MemoryInfo.NUM_OTHER_STATS; j++) { long mem = info.getOtherPss(j); miscPss[j] += mem; @@ -12384,6 +12423,9 @@ public class ActivityManagerService extends IActivityManager.Stub mem = info.getOtherRss(j); miscRss[j] += mem; ss[INDEX_OTHER_RSS] -= mem; + mem = info.getOtherPrivateDirty(j); + miscPrivateDirty[j] += mem; + ss[INDEX_OTHER_PRIVATE_DIRTY] -= mem; } oomPss[0] += myTotalPss; oomSwapPss[0] += myTotalSwapPss; @@ -12392,21 +12434,26 @@ public class ActivityManagerService extends IActivityManager.Stub } oomProcs[0].add(pssItem); oomRss[0] += myTotalRss; + oomPrivateDirty[0] += myTotalPrivateDirty; } }); ArrayList<MemItem> catMems = new ArrayList<MemItem>(); catMems.add(new MemItem("Native", "Native", - ss[INDEX_NATIVE_PSS], ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], -1)); + ss[INDEX_NATIVE_PSS], ss[INDEX_NATIVE_SWAP_PSS], + ss[INDEX_NATIVE_RSS], ss[INDEX_NATIVE_PRIVATE_DIRTY], -1)); final int dalvikId = -2; catMems.add(new MemItem("Dalvik", "Dalvik", ss[INDEX_DALVIK_PSS], - ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], dalvikId)); + ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], + ss[INDEX_DALVIK_PRIVATE_DIRTY], dalvikId)); catMems.add(new MemItem("Unknown", "Unknown", ss[INDEX_OTHER_PSS], - ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], -3)); + ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], + ss[INDEX_OTHER_PRIVATE_DIRTY], -3)); for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) { String label = Debug.MemoryInfo.getOtherLabel(j); - catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j], j)); + catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j], + miscPrivateDirty[j], j)); } if (dalvikSubitemPss.length > 0) { // Add dalvik subitems. @@ -12432,7 +12479,8 @@ public class ActivityManagerService extends IActivityManager.Stub final String name = Debug.MemoryInfo.getOtherLabel( Debug.MemoryInfo.NUM_OTHER_STATS + j); memItem.subitems.add(new MemItem(name, name, dalvikSubitemPss[j], - dalvikSubitemSwapPss[j], dalvikSubitemRss[j], j)); + dalvikSubitemSwapPss[j], dalvikSubitemRss[j], + dalvikSubitemPrivateDirty[j], j)); } } } @@ -12443,7 +12491,7 @@ public class ActivityManagerService extends IActivityManager.Stub String label = opts.isCompact ? DUMP_MEM_OOM_COMPACT_LABEL[j] : DUMP_MEM_OOM_LABEL[j]; MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j], - DUMP_MEM_OOM_ADJ[j]); + oomPrivateDirty[j], DUMP_MEM_OOM_ADJ[j]); item.subitems = oomProcs[j]; oomMems.add(item); } @@ -12454,33 +12502,34 @@ public class ActivityManagerService extends IActivityManager.Stub if (!brief && !opts.oomOnly && !opts.isCompact) { pw.println(); pw.println("Total RSS by process:"); - dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, false, false); + dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, false, false, false); pw.println(); } if (!opts.isCompact) { pw.println("Total RSS by OOM adjustment:"); } - dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, false, false); + dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, false, false, false); if (!brief && !opts.oomOnly) { PrintWriter out = categoryPw != null ? categoryPw : pw; if (!opts.isCompact) { out.println(); out.println("Total RSS by category:"); } - dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, false, false); + dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, false, false, false); } opts.dumpSwapPss = opts.dumpSwapPss && hasSwapPss && ss[INDEX_TOTAL_SWAP_PSS] != 0; if (!brief && !opts.oomOnly && !opts.isCompact) { pw.println(); pw.println("Total PSS by process:"); dumpMemItems(pw, " ", "proc", procMems, true, opts.isCompact, true, - opts.dumpSwapPss); + opts.dumpSwapPss, opts.mDumpPrivateDirty); pw.println(); } if (!opts.isCompact) { pw.println("Total PSS by OOM adjustment:"); } - dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, true, opts.dumpSwapPss); + dumpMemItems(pw, " ", "oom", oomMems, false, opts.isCompact, true, opts.dumpSwapPss, + opts.mDumpPrivateDirty); if (!brief && !opts.oomOnly) { PrintWriter out = categoryPw != null ? categoryPw : pw; if (!opts.isCompact) { @@ -12488,7 +12537,7 @@ public class ActivityManagerService extends IActivityManager.Stub out.println("Total PSS by category:"); } dumpMemItems(out, " ", "cat", catMems, true, opts.isCompact, true, - opts.dumpSwapPss); + opts.dumpSwapPss, opts.mDumpPrivateDirty); } if (!opts.isCompact) { pw.println(); @@ -12890,7 +12939,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, r.userId, hasActivities); + myTotalSwapPss, myTotalRss, 0, pid, r.userId, hasActivities); procMems.add(pssItem); procMemsMap.put(pid, pssItem); @@ -12977,7 +13026,7 @@ public class ActivityManagerService extends IActivityManager.Stub ss[INDEX_TOTAL_NATIVE_PSS] += myTotalPss; MemItem pssItem = new MemItem(st.name + " (pid " + st.pid + ")", - st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, + st.name, myTotalPss, info.getSummaryTotalSwapPss(), myTotalRss, 0, st.pid, UserHandle.getUserId(st.uid), false); procMems.add(pssItem); @@ -13022,15 +13071,16 @@ public class ActivityManagerService extends IActivityManager.Stub ArrayList<MemItem> catMems = new ArrayList<MemItem>(); catMems.add(new MemItem("Native", "Native", ss[INDEX_NATIVE_PSS], - ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], -1)); + ss[INDEX_NATIVE_SWAP_PSS], ss[INDEX_NATIVE_RSS], 0, -1)); final int dalvikId = -2; catMems.add(new MemItem("Dalvik", "Dalvik", ss[INDEX_DALVIK_PSS], - ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], dalvikId)); + ss[INDEX_DALVIK_SWAP_PSS], ss[INDEX_DALVIK_RSS], 0, dalvikId)); catMems.add(new MemItem("Unknown", "Unknown", ss[INDEX_OTHER_PSS], - ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], -3)); + ss[INDEX_OTHER_SWAP_PSS], ss[INDEX_OTHER_RSS], 0, -3)); for (int j=0; j<Debug.MemoryInfo.NUM_OTHER_STATS; j++) { String label = Debug.MemoryInfo.getOtherLabel(j); - catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], miscRss[j], j)); + catMems.add(new MemItem(label, label, miscPss[j], miscSwapPss[j], + miscRss[j], 0, j)); } if (dalvikSubitemPss.length > 0) { // Add dalvik subitems. @@ -13056,7 +13106,7 @@ public class ActivityManagerService extends IActivityManager.Stub final String name = Debug.MemoryInfo.getOtherLabel( Debug.MemoryInfo.NUM_OTHER_STATS + j); memItem.subitems.add(new MemItem(name, name, dalvikSubitemPss[j], - dalvikSubitemSwapPss[j], dalvikSubitemRss[j], j)); + dalvikSubitemSwapPss[j], dalvikSubitemRss[j], 0, j)); } } } @@ -13066,7 +13116,7 @@ public class ActivityManagerService extends IActivityManager.Stub if (oomPss[j] != 0) { String label = opts.isCompact ? DUMP_MEM_OOM_COMPACT_LABEL[j] : DUMP_MEM_OOM_LABEL[j]; - MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j], + MemItem item = new MemItem(label, label, oomPss[j], oomSwapPss[j], oomRss[j], 0, DUMP_MEM_OOM_ADJ[j]); item.subitems = oomProcs[j]; oomMems.add(item); |