mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
mm, page_alloc: drop should_suppress_show_mem
should_suppress_show_mem() was introduced to reduce the overhead of
show_mem on large NUMA systems. Things have changed since then though.
Namely c78e93630d
("mm: do not walk all of system memory during
show_mem") has reduced the overhead considerably.
Moreover warn_alloc_show_mem clears SHOW_MEM_FILTER_NODES when called from
the IRQ context already so we are not printing per node stats.
Remove should_suppress_show_mem because we are losing potentially
interesting information about allocation failures. We have seen a bug
report where system gets unresponsive under memory pressure and there is
only
kernel: [2032243.696888] qlge 0000:8b:00.1 ql1: Could not get a page chunk, i=8, clean_idx =200 .
kernel: [2032243.710725] swapper/7: page allocation failure: order:1, mode:0x1084120(GFP_ATOMIC|__GFP_COLD|__GFP_COMP)
without an additional information for debugging. It would be great to see
the state of the page allocator at the moment.
Link: http://lkml.kernel.org/r/20180907114334.7088-1-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: David Rientjes <rientjes@google.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e9b257ed15
commit
2c029a1ea3
@ -3367,26 +3367,12 @@ try_this_zone:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Large machines with many possible nodes should not always dump per-node
|
||||
* meminfo in irq context.
|
||||
*/
|
||||
static inline bool should_suppress_show_mem(void)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
#if NODES_SHIFT > 8
|
||||
ret = in_interrupt();
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void warn_alloc_show_mem(gfp_t gfp_mask, nodemask_t *nodemask)
|
||||
{
|
||||
unsigned int filter = SHOW_MEM_FILTER_NODES;
|
||||
static DEFINE_RATELIMIT_STATE(show_mem_rs, HZ, 1);
|
||||
|
||||
if (should_suppress_show_mem() || !__ratelimit(&show_mem_rs))
|
||||
if (!__ratelimit(&show_mem_rs))
|
||||
return;
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user