Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf228768 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ActivityManager: support new free memory estimate"

parents e08af548 202d05a5
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -11948,6 +11948,7 @@ public final class ActivityManagerService extends ActivityManagerNative
        boolean oomOnly = false;
        boolean isCompact = false;
        boolean localOnly = false;
        boolean showFreeFormula2 = false;
        
        int opti = 0;
        while (opti < args.length) {
@@ -11962,6 +11963,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                dumpDalvik = true;
            } else if ("-d".equals(opt)) {
                dumpDalvik = true;
            } else if ("-f".equals(opt)) {
                showFreeFormula2 = true;
            } else if ("-c".equals(opt)) {
                isCompact = true;
            } else if ("--oom".equals(opt)) {
@@ -11971,6 +11974,7 @@ public final class ActivityManagerService extends ActivityManagerNative
            } else if ("-h".equals(opt)) {
                pw.println("meminfo dump options: [-a] [-d] [-c] [--oom] [process]");
                pw.println("  -a: include all available information for each process.");
                pw.println("  -f: include alternative memory free estimate.");
                pw.println("  -d: include dalvik details when dumping process details.");
                pw.println("  -c: dump in a compact machine-parseable representation.");
                pw.println("  --oom: only show processes organized by oom adj.");
@@ -12063,6 +12067,8 @@ public final class ActivityManagerService extends ActivityManagerNative
        long totalPss = 0;
        long cachedPss = 0;
        long cachedPrivateDirty = 0;
        long cachedPrivateClean = 0;
        Debug.MemoryInfo mi = null;
        for (int i = procs.size() - 1 ; i >= 0 ; i--) {
@@ -12084,7 +12090,7 @@ public final class ActivityManagerService extends ActivityManagerNative
                if (mi == null) {
                    mi = new Debug.MemoryInfo();
                }
                if (dumpDetails || (!brief && !oomOnly)) {
                if (dumpDetails || (!brief && !oomOnly) || showFreeFormula2) {
                    Debug.getMemoryInfo(pid, mi);
                } else {
                    mi.dalvikPss = (int)Debug.getPss(pid, tmpLong);
@@ -12113,6 +12119,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                final long myTotalPss = mi.getTotalPss();
                final long myTotalUss = mi.getTotalUss();
                final long myTotalPrivateDirty = mi.getTotalPrivateDirty();
                final long myTotalPrivateClean = mi.getTotalPrivateClean();
                synchronized (this) {
                    if (r.thread != null && oomAdj == r.getSetAdjWithServices()) {
@@ -12140,6 +12148,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                    if (oomAdj >= ProcessList.CACHED_APP_MIN_ADJ) {
                        cachedPss += myTotalPss;
                        cachedPrivateDirty += myTotalPrivateDirty;
                        cachedPrivateClean += myTotalPrivateClean;
                    }
                    for (int oomIndex=0; oomIndex<oomPss.length; oomIndex++) {
@@ -12254,6 +12264,15 @@ public final class ActivityManagerService extends ActivityManagerNative
                            pw.print(cachedPss); pw.print(" cached pss + ");
                            pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + ");
                            pw.print(memInfo.getFreeSizeKb()); pw.println(" free)");
                    if (showFreeFormula2) {
                        pw.print(" Free RAM v2: "); pw.print(cachedPrivateDirty
                                + cachedPrivateClean + memInfo.getCachedSizeKb()
                                + memInfo.getFreeSizeKb()); pw.print(" kB (");
                                pw.print(cachedPrivateDirty); pw.print(" cached private dirty + ");
                                pw.print(cachedPrivateClean); pw.print(" cached private clean + ");
                                pw.print(memInfo.getCachedSizeKb()); pw.print(" cached + ");
                                pw.print(memInfo.getFreeSizeKb()); pw.println(" free)");
                    }
                } else {
                    pw.print("ram,"); pw.print(memInfo.getTotalSizeKb()); pw.print(",");
                    pw.print(cachedPss + memInfo.getCachedSizeKb()