[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