author | Alan Huang <ahuang@mozilla.com> |
Wed, 11 Sep 2013 15:12:56 +0800 | |
changeset 146625 | a96f92dc00881f9d78e4c81504c2a77909c4b61e |
parent 146624 | 0ca11e6227504f5a32c3306c67390fac3e009eb5 |
child 146626 | e00feb59df108fa2576a333d70db6732575de85d |
push id | 25267 |
push user | ryanvm@gmail.com |
push date | Thu, 12 Sep 2013 00:58:25 +0000 |
treeherder | mozilla-central@2f11fad2f307 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | gsvelto |
bugs | 914728 |
milestone | 26.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
b2g/app/b2g.js | file | annotate | diff | comparison | revisions | |
hal/gonk/GonkHal.cpp | file | annotate | diff | comparison | revisions |
--- a/b2g/app/b2g.js +++ b/b2g/app/b2g.js @@ -603,25 +603,25 @@ pref("hal.processPriorityManager.gonk.MA pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.OomScoreAdjust", 67); pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.KillUnderMB", 5); pref("hal.processPriorityManager.gonk.FOREGROUND_HIGH.Nice", 0); pref("hal.processPriorityManager.gonk.FOREGROUND.OomScoreAdjust", 134); pref("hal.processPriorityManager.gonk.FOREGROUND.KillUnderMB", 6); pref("hal.processPriorityManager.gonk.FOREGROUND.Nice", 1); -pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.OomScoreAdjust", 200); +pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.OomScoreAdjust", 400); pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.KillUnderMB", 7); pref("hal.processPriorityManager.gonk.BACKGROUND_PERCEIVABLE.Nice", 7); -pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.OomScoreAdjust", 267); +pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.OomScoreAdjust", 534); pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.KillUnderMB", 8); pref("hal.processPriorityManager.gonk.BACKGROUND_HOMESCREEN.Nice", 18); -pref("hal.processPriorityManager.gonk.BACKGROUND.OomScoreAdjust", 400); +pref("hal.processPriorityManager.gonk.BACKGROUND.OomScoreAdjust", 667); pref("hal.processPriorityManager.gonk.BACKGROUND.KillUnderMB", 20); pref("hal.processPriorityManager.gonk.BACKGROUND.Nice", 18); // Processes get this niceness when they have low CPU priority. pref("hal.processPriorityManager.gonk.LowCPUNice", 18); // Fire a memory pressure event when the system has less than Xmb of memory // remaining. You should probably set this just above Y.KillUnderMB for
--- a/hal/gonk/GonkHal.cpp +++ b/hal/gonk/GonkHal.cpp @@ -1056,16 +1056,17 @@ EnsureKernelLowMemKillerParamsSet() // GonkMemoryPressureMonitoring.cpp.) // Build the adj and minfree strings. nsAutoCString adjParams; nsAutoCString minfreeParams; int32_t lowerBoundOfNextOomScoreAdj = OOM_SCORE_ADJ_MIN - 1; int32_t lowerBoundOfNextKillUnderMB = 0; + int32_t countOfLowmemorykillerParametersSets = 0; for (int i = NUM_PROCESS_PRIORITY - 1; i >= 0; i--) { // The system doesn't function correctly if we're missing these prefs, so // crash loudly. ProcessPriority priority = static_cast<ProcessPriority>(i); int32_t oomScoreAdj; @@ -1076,32 +1077,36 @@ EnsureKernelLowMemKillerParamsSet() MOZ_CRASH(); } int32_t killUnderMB; if (!NS_SUCCEEDED(Preferences::GetInt( nsPrintfCString("hal.processPriorityManager.gonk.%s.KillUnderMB", ProcessPriorityToString(priority)).get(), &killUnderMB))) { - MOZ_CRASH(); + continue; } // The LMK in kernel silently malfunctions if we assign the parameters // in non-increasing order, so we add this assertion here. See bug 887192. MOZ_ASSERT(oomScoreAdj > lowerBoundOfNextOomScoreAdj); MOZ_ASSERT(killUnderMB > lowerBoundOfNextKillUnderMB); + // The LMK in kernel only accept 6 sets of LMK parameters. See bug 914728. + MOZ_ASSERT(countOfLowmemorykillerParametersSets < 6); + // adj is in oom_adj units. adjParams.AppendPrintf("%d,", OomAdjOfOomScoreAdj(oomScoreAdj)); // minfree is in pages. minfreeParams.AppendPrintf("%d,", killUnderMB * 1024 * 1024 / PAGE_SIZE); lowerBoundOfNextOomScoreAdj = oomScoreAdj; lowerBoundOfNextKillUnderMB = killUnderMB; + countOfLowmemorykillerParametersSets++; } // Strip off trailing commas. adjParams.Cut(adjParams.Length() - 1, 1); minfreeParams.Cut(minfreeParams.Length() - 1, 1); if (!adjParams.IsEmpty() && !minfreeParams.IsEmpty()) { WriteToFile("/sys/module/lowmemorykiller/parameters/adj", adjParams.get()); WriteToFile("/sys/module/lowmemorykiller/parameters/minfree", minfreeParams.get());