lib/show_mem.c: teach show_mem to work with the given nodemask
authorMichal Hocko <mhocko@suse.com>
Wed, 22 Feb 2017 23:46:16 +0000 (15:46 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 00:41:30 +0000 (16:41 -0800)
commit9af744d743170b5f5ef70031dea8d772d166ab28
tree87290ffc304288352c66bc9afda0d4214403862c
parent6d23f8a5d432337aa2590ea8fd5eee8b0bc28eee
lib/show_mem.c: teach show_mem to work with the given nodemask

show_mem() allows to filter out node specific data which is irrelevant
to the allocation request via SHOW_MEM_FILTER_NODES.  The filtering is
done in skip_free_areas_node which skips all nodes which are not in the
mems_allowed of the current process.  This works most of the time as
expected because the nodemask shouldn't be outside of the allocating
task but there are some exceptions.  E.g.  memory hotplug might want to
request allocations from outside of the allowed nodes (see
new_node_page).

Get rid of this hardcoded behavior and push the allocation mask down the
show_mem path and use it instead of cpuset_current_mems_allowed.  NULL
nodemask is interpreted as cpuset_current_mems_allowed.

[akpm@linux-foundation.org: coding-style fixes]
Link: http://lkml.kernel.org/r/20170117091543.25850-5-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Mel Gorman <mgorman@suse.de>
Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/powerpc/xmon/xmon.c
arch/sparc/kernel/setup_32.c
drivers/net/ethernet/sgi/ioc3-eth.c
drivers/tty/sysrq.c
drivers/tty/vt/keyboard.c
include/linux/mm.h
lib/show_mem.c
mm/nommu.c
mm/oom_kill.c
mm/page_alloc.c