Skip to content
  • Michal Hocko's avatar
    memcg, oom: lock mem_cgroup_print_oom_info · 947b3dd1
    Michal Hocko authored
    
    
    mem_cgroup_print_oom_info uses a static buffer (memcg_name) to store the
    name of the cgroup.  This is not safe as pointed out by David Rientjes
    because memcg oom is locked only for its hierarchy and nothing prevents
    another parallel hierarchy to trigger oom as well and overwrite the
    already in-use buffer.
    
    This patch introduces oom_info_lock hidden inside
    mem_cgroup_print_oom_info which is held throughout the function.  It
    makes access to memcg_name safe and as a bonus it also prevents parallel
    memcg ooms to interleave their statistics which would make the printed
    data hard to analyze otherwise.
    
    Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    947b3dd1