• Johannes Weiner's avatar
    mm: memcontrol: print proper OOM header when no eligible victim left · 3100dab2
    Johannes Weiner authored
    When the memcg OOM killer runs out of killable tasks, it currently
    prints a WARN with no further OOM context.  This has caused some user
    confusion.
    
    Warnings indicate a kernel problem.  In a reported case, however, the
    situation was triggered by a nonsensical memcg configuration (hard limit
    set to 0).  But without any VM context this wasn't obvious from the
    report, and it took some back and forth on the mailing list to identify
    what is actually a trivial issue.
    
    Handle this OOM condition like we handle it in the global OOM killer:
    dump the full OOM context and tell the user we ran out of tasks.
    
    This way the user can identify misconfigurations easily by themselves
    and rectify the problem - without having to go through the hassle of
    running into an obscure but unsettling warning, finding the appropriate
    kernel mailing list and waiting for a kernel developer to remote-analyze
    that the memcg configuration caused this.
    
    If users cannot make sense of why the OOM killer was triggered or why it
    failed, they will still report it to the mailing list, we know that from
    experience.  So in case there is an actual kernel bug causing this,
    kernel developers will very likely hear about it.
    
    Link: http://lkml.kernel.org/r/20180821160406.22578-1-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3100dab2
memcontrol.c 170 KB