Skip to content
  • David Rientjes's avatar
    oom: suppress nodes that are not allowed from meminfo on oom kill · ddd588b5
    David Rientjes authored
    
    
    The oom killer is extremely verbose for machines with a large number of
    cpus and/or nodes.  This verbosity can often be harmful if it causes other
    important messages to be scrolled from the kernel log and incurs a
    signicant time delay, specifically for kernels with CONFIG_NODES_SHIFT >
    8.
    
    This patch causes only memory information to be displayed for nodes that
    are allowed by current's cpuset when dumping the VM state.  Information
    for all other nodes is irrelevant to the oom condition; we don't care if
    there's an abundance of memory elsewhere if we can't access it.
    
    This only affects the behavior of dumping memory information when an oom
    is triggered.  Other dumps, such as for sysrq+m, still display the
    unfiltered form when using the existing show_mem() interface.
    
    Additionally, the per-cpu pageset statistics are extremely verbose in oom
    killer output, so it is now suppressed.  This removes
    
    	nodes_weight(current->mems_allowed) * (1 + nr_cpus)
    
    lines from the oom killer output.
    
    Callers may use __show_mem(SHOW_MEM_FILTER_NODES) to filter disallowed
    nodes.
    
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ddd588b5