From 824aeab2db793e4d7af9a30f5a38d6ca4d1606bc Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 25 Nov 2014 17:26:36 -0800 Subject: [PATCH] Re-tune low memory killer params. Drop the minimums back down to their old values. Revert what I think was a mistake in bumping up the last two maximums to the same value as was being forced for 64 bit. Smarten the 64 bit adjustment to be relative to the values picked, rather than hard-coded. Change-Id: Ibee9625073469ad4722a1b6684c9fb2b9f0a4681 --- services/core/java/com/android/server/am/ProcessList.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index a4aff77fb13b0..cdc51341e1f41 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -177,7 +177,7 @@ final class ProcessList { // 1280x800 or larger screen with around 1GB RAM. Values are in KB. private final int[] mOomMinFreeHigh = new int[] { 73728, 92160, 110592, - 129024, 225000, 325000 + 129024, 147456, 184320 }; // The actual OOM killer memory levels we are using. private final int[] mOomMinFree = new int[mOomAdj.length]; @@ -212,7 +212,7 @@ final class ProcessList { private void updateOomLevels(int displayWidth, int displayHeight, boolean write) { // Scale buckets from avail memory: at 300MB we use the lowest values to // 700MB or more for the top values. - float scaleMem = ((float)(mTotalMemMb-300))/(700-300); + float scaleMem = ((float)(mTotalMemMb-350))/(700-350); // Scale buckets from screen size. int minSize = 480*800; // 384000 @@ -237,8 +237,8 @@ final class ProcessList { if (Build.SUPPORTED_64_BIT_ABIS.length > 0) { // Increase the high min-free levels for cached processes for 64-bit - mOomMinFreeHigh[4] = 225000; - mOomMinFreeHigh[5] = 325000; + mOomMinFreeHigh[4] = (mOomMinFreeHigh[4]*3)/2; + mOomMinFreeHigh[5] = (mOomMinFreeHigh[5]*7)/8; } for (int i=0; i