mm, page_alloc: drop should_suppress_show_mem
Subsystems (2)
RFC PATCH 1/1 mm, page_alloc: drop should_suppress_show_mem
From: Michal Hocko <[email protected]>
should_suppress_show_mem has been introduced to reduce the overhead of show_mem on large NUMA systems. Things have changed since then though. Namely c78e93630d15 ("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.
--- mm/page_alloc.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-)
mm/page_alloc.c +1 -15
@@ -3366,26 +3366,12 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, int alloc_flags,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 ;/*
Signature · 1 line
2.18.0
Quoted 17 lines · Michal Hocko
From: Michal Hocko <[email protected]>
should_suppress_show_memhas been introduced to reduce the overhead ofshow_memon large NUMA systems. Things have changed since then though. Namelyc78e93630d15("mm: do not walk all of system memory duringshow_mem") has reduced the overhead considerably.Moreover
warn_alloc_show_memclearsSHOW_MEM_FILTER_NODESwhen called from the IRQ context already so we are not printing per node stats.Remove
should_suppress_show_membecause 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)
Quoted 4 lines
without an additional information for debugging. It would be great to see the state of the page allocator at the moment.
Signed-off-by Michal Hocko <[email protected]>
The dependency on build-time constant instead of real system size is also unfortunate. Maybe the time was depending on *possible* nodes in the past, but I don't think it's the case today.
Thanks.