Loading services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -3495,7 +3495,7 @@ public class ActivityManagerService extends IActivityManager.Stub if (!app.killedByAm) { reportUidInfoMessageLocked(TAG, "Process " + app.processName + " (pid " + pid + ") has died: " + ProcessList.makeOomAdjString(app.setAdj) + ProcessList.makeOomAdjString(app.setAdj, true) + " " + ProcessList.makeProcStateString(app.setProcState), app.info.uid); mAllowLowerMemLevel = true; } else { Loading Loading @@ -10029,7 +10029,7 @@ public class ActivityManagerService extends IActivityManager.Stub pw.print(" #"); pw.print(index); pw.print(": "); pw.print(ProcessList.makeOomAdjString(proc.setAdj)); pw.print(ProcessList.makeOomAdjString(proc.setAdj, false)); pw.print(" "); pw.print(ProcessList.makeProcStateString(proc.getCurProcState())); pw.print(" "); Loading Loading @@ -11334,7 +11334,7 @@ public class ActivityManagerService extends IActivityManager.Stub for (int i = list.size() - 1; i >= 0; i--) { ProcessRecord r = list.get(i).first; long token = proto.start(fieldId); String oomAdj = ProcessList.makeOomAdjString(r.setAdj); String oomAdj = ProcessList.makeOomAdjString(r.setAdj, true); proto.write(ProcessOomProto.PERSISTENT, r.isPersistent()); proto.write(ProcessOomProto.NUM, (origList.size()-1)-list.get(i).second); proto.write(ProcessOomProto.OOM_ADJ, oomAdj); Loading Loading @@ -11434,7 +11434,7 @@ public class ActivityManagerService extends IActivityManager.Stub for (int i=list.size()-1; i>=0; i--) { ProcessRecord r = list.get(i).first; String oomAdj = ProcessList.makeOomAdjString(r.setAdj); String oomAdj = ProcessList.makeOomAdjString(r.setAdj, false); char schedGroup; switch (r.setSchedGroup) { case ProcessList.SCHED_GROUP_BACKGROUND: Loading Loading @@ -12871,7 +12871,7 @@ public class ActivityManagerService extends IActivityManager.Stub private void appendBasicMemEntry(StringBuilder sb, int oomAdj, int procState, long pss, long memtrack, String name) { sb.append(" "); sb.append(ProcessList.makeOomAdjString(oomAdj)); sb.append(ProcessList.makeOomAdjString(oomAdj, false)); sb.append(' '); sb.append(ProcessList.makeProcStateString(procState)); sb.append(' '); services/core/java/com/android/server/am/ProcessList.java +35 −17 Original line number Diff line number Diff line Loading @@ -679,47 +679,65 @@ public final class ProcessList { return totalProcessLimit/2; } private static String buildOomTag(String prefix, String space, int val, int base) { private static String buildOomTag(String prefix, String compactPrefix, String space, int val, int base, boolean compact) { final int diff = val - base; if (diff == 0) { if (compact) { return compactPrefix; } if (space == null) return prefix; return prefix + space; } if (diff < 10) { return prefix + "+ " + Integer.toString(diff); return prefix + (compact ? "+" : "+ ") + Integer.toString(diff); } return prefix + "+" + Integer.toString(diff); } public static String makeOomAdjString(int setAdj) { public static String makeOomAdjString(int setAdj, boolean compact) { if (setAdj >= ProcessList.CACHED_APP_MIN_ADJ) { return buildOomTag("cch", " ", setAdj, ProcessList.CACHED_APP_MIN_ADJ); return buildOomTag("cch", "cch", " ", setAdj, ProcessList.CACHED_APP_MIN_ADJ, compact); } else if (setAdj >= ProcessList.SERVICE_B_ADJ) { return buildOomTag("svcb ", null, setAdj, ProcessList.SERVICE_B_ADJ); return buildOomTag("svcb ", "svcb", null, setAdj, ProcessList.SERVICE_B_ADJ, compact); } else if (setAdj >= ProcessList.PREVIOUS_APP_ADJ) { return buildOomTag("prev ", null, setAdj, ProcessList.PREVIOUS_APP_ADJ); return buildOomTag("prev ", "prev", null, setAdj, ProcessList.PREVIOUS_APP_ADJ, compact); } else if (setAdj >= ProcessList.HOME_APP_ADJ) { return buildOomTag("home ", null, setAdj, ProcessList.HOME_APP_ADJ); return buildOomTag("home ", "home", null, setAdj, ProcessList.HOME_APP_ADJ, compact); } else if (setAdj >= ProcessList.SERVICE_ADJ) { return buildOomTag("svc ", null, setAdj, ProcessList.SERVICE_ADJ); return buildOomTag("svc ", "svc", null, setAdj, ProcessList.SERVICE_ADJ, compact); } else if (setAdj >= ProcessList.HEAVY_WEIGHT_APP_ADJ) { return buildOomTag("hvy ", null, setAdj, ProcessList.HEAVY_WEIGHT_APP_ADJ); return buildOomTag("hvy ", "hvy", null, setAdj, ProcessList.HEAVY_WEIGHT_APP_ADJ, compact); } else if (setAdj >= ProcessList.BACKUP_APP_ADJ) { return buildOomTag("bkup ", null, setAdj, ProcessList.BACKUP_APP_ADJ); return buildOomTag("bkup ", "bkup", null, setAdj, ProcessList.BACKUP_APP_ADJ, compact); } else if (setAdj >= ProcessList.PERCEPTIBLE_APP_ADJ) { return buildOomTag("prcp ", null, setAdj, ProcessList.PERCEPTIBLE_APP_ADJ); return buildOomTag("prcp ", "prcp", null, setAdj, ProcessList.PERCEPTIBLE_APP_ADJ, compact); } else if (setAdj >= ProcessList.VISIBLE_APP_ADJ) { return buildOomTag("vis", " ", setAdj, ProcessList.VISIBLE_APP_ADJ); return buildOomTag("vis", "vis", " ", setAdj, ProcessList.VISIBLE_APP_ADJ, compact); } else if (setAdj >= ProcessList.FOREGROUND_APP_ADJ) { return buildOomTag("fore ", null, setAdj, ProcessList.FOREGROUND_APP_ADJ); return buildOomTag("fore ", "fore", null, setAdj, ProcessList.FOREGROUND_APP_ADJ, compact); } else if (setAdj >= ProcessList.PERSISTENT_SERVICE_ADJ) { return buildOomTag("psvc ", null, setAdj, ProcessList.PERSISTENT_SERVICE_ADJ); return buildOomTag("psvc ", "psvc", null, setAdj, ProcessList.PERSISTENT_SERVICE_ADJ, compact); } else if (setAdj >= ProcessList.PERSISTENT_PROC_ADJ) { return buildOomTag("pers ", null, setAdj, ProcessList.PERSISTENT_PROC_ADJ); return buildOomTag("pers ", "pers", null, setAdj, ProcessList.PERSISTENT_PROC_ADJ, compact); } else if (setAdj >= ProcessList.SYSTEM_ADJ) { return buildOomTag("sys ", null, setAdj, ProcessList.SYSTEM_ADJ); return buildOomTag("sys ", "sys", null, setAdj, ProcessList.SYSTEM_ADJ, compact); } else if (setAdj >= ProcessList.NATIVE_ADJ) { return buildOomTag("ntv ", null, setAdj, ProcessList.NATIVE_ADJ); return buildOomTag("ntv ", "ntv", null, setAdj, ProcessList.NATIVE_ADJ, compact); } else { return Integer.toString(setAdj); } Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -3495,7 +3495,7 @@ public class ActivityManagerService extends IActivityManager.Stub if (!app.killedByAm) { reportUidInfoMessageLocked(TAG, "Process " + app.processName + " (pid " + pid + ") has died: " + ProcessList.makeOomAdjString(app.setAdj) + ProcessList.makeOomAdjString(app.setAdj, true) + " " + ProcessList.makeProcStateString(app.setProcState), app.info.uid); mAllowLowerMemLevel = true; } else { Loading Loading @@ -10029,7 +10029,7 @@ public class ActivityManagerService extends IActivityManager.Stub pw.print(" #"); pw.print(index); pw.print(": "); pw.print(ProcessList.makeOomAdjString(proc.setAdj)); pw.print(ProcessList.makeOomAdjString(proc.setAdj, false)); pw.print(" "); pw.print(ProcessList.makeProcStateString(proc.getCurProcState())); pw.print(" "); Loading Loading @@ -11334,7 +11334,7 @@ public class ActivityManagerService extends IActivityManager.Stub for (int i = list.size() - 1; i >= 0; i--) { ProcessRecord r = list.get(i).first; long token = proto.start(fieldId); String oomAdj = ProcessList.makeOomAdjString(r.setAdj); String oomAdj = ProcessList.makeOomAdjString(r.setAdj, true); proto.write(ProcessOomProto.PERSISTENT, r.isPersistent()); proto.write(ProcessOomProto.NUM, (origList.size()-1)-list.get(i).second); proto.write(ProcessOomProto.OOM_ADJ, oomAdj); Loading Loading @@ -11434,7 +11434,7 @@ public class ActivityManagerService extends IActivityManager.Stub for (int i=list.size()-1; i>=0; i--) { ProcessRecord r = list.get(i).first; String oomAdj = ProcessList.makeOomAdjString(r.setAdj); String oomAdj = ProcessList.makeOomAdjString(r.setAdj, false); char schedGroup; switch (r.setSchedGroup) { case ProcessList.SCHED_GROUP_BACKGROUND: Loading Loading @@ -12871,7 +12871,7 @@ public class ActivityManagerService extends IActivityManager.Stub private void appendBasicMemEntry(StringBuilder sb, int oomAdj, int procState, long pss, long memtrack, String name) { sb.append(" "); sb.append(ProcessList.makeOomAdjString(oomAdj)); sb.append(ProcessList.makeOomAdjString(oomAdj, false)); sb.append(' '); sb.append(ProcessList.makeProcStateString(procState)); sb.append(' ');
services/core/java/com/android/server/am/ProcessList.java +35 −17 Original line number Diff line number Diff line Loading @@ -679,47 +679,65 @@ public final class ProcessList { return totalProcessLimit/2; } private static String buildOomTag(String prefix, String space, int val, int base) { private static String buildOomTag(String prefix, String compactPrefix, String space, int val, int base, boolean compact) { final int diff = val - base; if (diff == 0) { if (compact) { return compactPrefix; } if (space == null) return prefix; return prefix + space; } if (diff < 10) { return prefix + "+ " + Integer.toString(diff); return prefix + (compact ? "+" : "+ ") + Integer.toString(diff); } return prefix + "+" + Integer.toString(diff); } public static String makeOomAdjString(int setAdj) { public static String makeOomAdjString(int setAdj, boolean compact) { if (setAdj >= ProcessList.CACHED_APP_MIN_ADJ) { return buildOomTag("cch", " ", setAdj, ProcessList.CACHED_APP_MIN_ADJ); return buildOomTag("cch", "cch", " ", setAdj, ProcessList.CACHED_APP_MIN_ADJ, compact); } else if (setAdj >= ProcessList.SERVICE_B_ADJ) { return buildOomTag("svcb ", null, setAdj, ProcessList.SERVICE_B_ADJ); return buildOomTag("svcb ", "svcb", null, setAdj, ProcessList.SERVICE_B_ADJ, compact); } else if (setAdj >= ProcessList.PREVIOUS_APP_ADJ) { return buildOomTag("prev ", null, setAdj, ProcessList.PREVIOUS_APP_ADJ); return buildOomTag("prev ", "prev", null, setAdj, ProcessList.PREVIOUS_APP_ADJ, compact); } else if (setAdj >= ProcessList.HOME_APP_ADJ) { return buildOomTag("home ", null, setAdj, ProcessList.HOME_APP_ADJ); return buildOomTag("home ", "home", null, setAdj, ProcessList.HOME_APP_ADJ, compact); } else if (setAdj >= ProcessList.SERVICE_ADJ) { return buildOomTag("svc ", null, setAdj, ProcessList.SERVICE_ADJ); return buildOomTag("svc ", "svc", null, setAdj, ProcessList.SERVICE_ADJ, compact); } else if (setAdj >= ProcessList.HEAVY_WEIGHT_APP_ADJ) { return buildOomTag("hvy ", null, setAdj, ProcessList.HEAVY_WEIGHT_APP_ADJ); return buildOomTag("hvy ", "hvy", null, setAdj, ProcessList.HEAVY_WEIGHT_APP_ADJ, compact); } else if (setAdj >= ProcessList.BACKUP_APP_ADJ) { return buildOomTag("bkup ", null, setAdj, ProcessList.BACKUP_APP_ADJ); return buildOomTag("bkup ", "bkup", null, setAdj, ProcessList.BACKUP_APP_ADJ, compact); } else if (setAdj >= ProcessList.PERCEPTIBLE_APP_ADJ) { return buildOomTag("prcp ", null, setAdj, ProcessList.PERCEPTIBLE_APP_ADJ); return buildOomTag("prcp ", "prcp", null, setAdj, ProcessList.PERCEPTIBLE_APP_ADJ, compact); } else if (setAdj >= ProcessList.VISIBLE_APP_ADJ) { return buildOomTag("vis", " ", setAdj, ProcessList.VISIBLE_APP_ADJ); return buildOomTag("vis", "vis", " ", setAdj, ProcessList.VISIBLE_APP_ADJ, compact); } else if (setAdj >= ProcessList.FOREGROUND_APP_ADJ) { return buildOomTag("fore ", null, setAdj, ProcessList.FOREGROUND_APP_ADJ); return buildOomTag("fore ", "fore", null, setAdj, ProcessList.FOREGROUND_APP_ADJ, compact); } else if (setAdj >= ProcessList.PERSISTENT_SERVICE_ADJ) { return buildOomTag("psvc ", null, setAdj, ProcessList.PERSISTENT_SERVICE_ADJ); return buildOomTag("psvc ", "psvc", null, setAdj, ProcessList.PERSISTENT_SERVICE_ADJ, compact); } else if (setAdj >= ProcessList.PERSISTENT_PROC_ADJ) { return buildOomTag("pers ", null, setAdj, ProcessList.PERSISTENT_PROC_ADJ); return buildOomTag("pers ", "pers", null, setAdj, ProcessList.PERSISTENT_PROC_ADJ, compact); } else if (setAdj >= ProcessList.SYSTEM_ADJ) { return buildOomTag("sys ", null, setAdj, ProcessList.SYSTEM_ADJ); return buildOomTag("sys ", "sys", null, setAdj, ProcessList.SYSTEM_ADJ, compact); } else if (setAdj >= ProcessList.NATIVE_ADJ) { return buildOomTag("ntv ", null, setAdj, ProcessList.NATIVE_ADJ); return buildOomTag("ntv ", "ntv", null, setAdj, ProcessList.NATIVE_ADJ, compact); } else { return Integer.toString(setAdj); } Loading