Skip to content

Commit 3f16dd4

Browse files
author
Dianne Hackborn
committed
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
1 parent 134b62e commit 3f16dd4

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

services/core/java/com/android/server/am/ProcessList.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,14 @@ final class ProcessList {
166166
// These are the low-end OOM level limits. This is appropriate for an
167167
// HVGA or smaller phone with less than 512MB. Values are in KB.
168168
private final int[] mOomMinFreeLow = new int[] {
169-
8192, 12288, 16384,
170-
24576, 28672, 32768
169+
12288, 18432, 24576,
170+
36864, 43008, 49152
171171
};
172172
// These are the high-end OOM level limits. This is appropriate for a
173173
// 1280x800 or larger screen with around 1GB RAM. Values are in KB.
174174
private final int[] mOomMinFreeHigh = new int[] {
175-
49152, 61440, 73728,
176-
86016, 98304, 122880
175+
73728, 92160, 110592,
176+
129024, 147456, 184320
177177
};
178178
// The actual OOM killer memory levels we are using.
179179
private final int[] mOomMinFree = new int[mOomAdj.length];
@@ -231,7 +231,11 @@ private void updateOomLevels(int displayWidth, int displayHeight, boolean write)
231231
Slog.i("XXXXXX", "minfree_adj=" + minfree_adj + " minfree_abs=" + minfree_abs);
232232
}
233233

234-
final boolean is64bit = Build.SUPPORTED_64_BIT_ABIS.length > 0;
234+
// We've now baked in the increase to the basic oom values above, since
235+
// they seem to be useful more generally for devices that are tight on
236+
// memory than just for 64 bit. This should probably have some more
237+
// tuning done, so not deleting it quite yet...
238+
final boolean is64bit = false; //Build.SUPPORTED_64_BIT_ABIS.length > 0;
235239

236240
for (int i=0; i<mOomAdj.length; i++) {
237241
int low = mOomMinFreeLow[i];

0 commit comments

Comments
 (0)