summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2014-10-02 17:21:27 -0700
committer Dianne Hackborn <hackbod@google.com> 2014-10-02 17:21:27 -0700
commit3f16dd49e8fe33f64d290a41ad1cb32c8a333ce6 (patch)
treee8b22ff4040925cf58905df157c1258f03da681b
parent134b62ed14b830b467423082036b3222f84f291c (diff)
Maybe fix issue #17449495: Nakasi is pretty laggy/slow to do anything
Tweak the oom tuning to raise everything by 50%. This is the same increase we did for Volantis; I am thinking that most of the issue there was not it being 64 bit, but it being tighter on RAM. From my testing, it looks like in user switching there was some paging going on with Nakasi, and with this change things seem to be better. We should probably revisit this for future work on RAM. It seems likely that a 64 bit device will need more RAM, so probably the value I am picking here is larger than we actually need for other devices. I think this is the safest change at this point though -- it leaves Volantis the same, where we already had tweaked it to address paging issues, raises it on Nakasi (to the same value as Volantis) where we seem to have paging issues, and on our other devices also raises it but those are generally not under memory pressure so this shouldn't really make a difference. Change-Id: Ib19394068734d322a015ed07370d9d4961877e4b
-rw-r--r--services/core/java/com/android/server/am/ProcessList.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 5022b2856319..0ea66b91554a 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -166,14 +166,14 @@ final class ProcessList {
// These are the low-end OOM level limits. This is appropriate for an
// HVGA or smaller phone with less than 512MB. Values are in KB.
private final int[] mOomMinFreeLow = new int[] {
- 8192, 12288, 16384,
- 24576, 28672, 32768
+ 12288, 18432, 24576,
+ 36864, 43008, 49152
};
// These are the high-end OOM level limits. This is appropriate for a
// 1280x800 or larger screen with around 1GB RAM. Values are in KB.
private final int[] mOomMinFreeHigh = new int[] {
- 49152, 61440, 73728,
- 86016, 98304, 122880
+ 73728, 92160, 110592,
+ 129024, 147456, 184320
};
// The actual OOM killer memory levels we are using.
private final int[] mOomMinFree = new int[mOomAdj.length];
@@ -231,7 +231,11 @@ final class ProcessList {
Slog.i("XXXXXX", "minfree_adj=" + minfree_adj + " minfree_abs=" + minfree_abs);
}
- final boolean is64bit = Build.SUPPORTED_64_BIT_ABIS.length > 0;
+ // We've now baked in the increase to the basic oom values above, since
+ // they seem to be useful more generally for devices that are tight on
+ // memory than just for 64 bit. This should probably have some more
+ // tuning done, so not deleting it quite yet...
+ final boolean is64bit = false; //Build.SUPPORTED_64_BIT_ABIS.length > 0;
for (int i=0; i<mOomAdj.length; i++) {
int low = mOomMinFreeLow[i];