[PATCH 0/5] [SRU] [X/raspi2] Fix OOM errors by reverting an old workaround
Paolo Pisati
paolo.pisati at canonical.com
Wed Aug 23 15:31:47 UTC 2017
BugLink: http://bugs.launchpad.net/bugs/1712598
SRU:
The original report for this bug is this one:
http://bugs.launchpad.net/bugs/1655842
but since the raspi2 kernel has a well isolated solution that doesn't affect
(and doesn't apply) to the other kernels mentioned there, i decided to spawn
this bug and use it as a reference instead of polluting the above LP bug with
details and information that don't pertain there.
Impact:
People are reporting OOM errors on RaspberryPI2/3, in particular when
running KDE or chromium, and the problem disappears when they go back to a
kernel previous than 4.4.0-1044.51.
This is actually a fallout from a previous attempt to fix a memory corruption
in the usb stack and that was triggered during boot when mmc was mounted:
BugLink: http://bugs.launchpad.net/bugs/1665280
While trying to 'fix' the above problem, some patches that deal with OOM and
memory presseure situaions were reverted and led to this situation - by
reverting back these changes we fix the OOM errors (see comments #90, #91, #92
and #93 in the original LP bug) as reported by users, while the memory
corruption problem doesn't show up anymore.
Fix:
Reverts the following commits:
080aca8 Revert "mm: consider compaction feedback also for costly allocation"
486bab1 Revert "mm, oom, compaction: prevent from should_compact_retry looping for ever for costly orders"
7b84469 Revert "mm, oom: protect !costly allocations some more for !CONFIG_COMPACTION"
19724e4 Revert "mm, oom: prevent premature OOM killer invocation for high order request"
4b8b650 Revert "PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend"
How to test:
People have reported out of memory erros while running KDE and/or chromium, so
the best way to reproduce this problem is to install KDE, open ~20 konqueror
windows, execute chromium, and opens ~10 tabs on different web sites
- if the kernel doesn't oops, the fix is working.
Paolo Pisati (5):
Revert "Revert "mm: consider compaction feedback also for costly
allocation""
Revert "Revert "mm, oom, compaction: prevent from should_compact_retry
looping for ever for costly orders""
Revert "Revert "mm, oom: protect !costly allocations some more for
!CONFIG_COMPACTION""
Revert "Revert "mm, oom: prevent premature OOM killer invocation for
high order request""
Revert "Revert "PM / wakeirq: Fix dedicated wakeirq for drivers not
using autosuspend""
drivers/base/power/power.h | 19 +++++++-
drivers/base/power/runtime.c | 8 ++--
drivers/base/power/wakeirq.c | 76 ++++++++++++++++++++++++++----
include/linux/compaction.h | 4 ++
include/linux/mmzone.h | 3 ++
mm/compaction.c | 42 +++++++++++++++--
mm/page_alloc.c | 107 +++++++++++++++++--------------------------
7 files changed, 175 insertions(+), 84 deletions(-)
--
2.7.4
More information about the kernel-team
mailing list