[Devel] [PATCH RHEL8 COMMIT] ms/mm, page_alloc: drop should_suppress_show_mem
Konstantin Khorenko
khorenko at virtuozzo.com
Wed Jun 2 19:48:03 MSK 2021
The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-240.1.1.vz8.5.34
------>
commit 8a55120e3f004844cbec162e2b0ad89cce526ef3
Author: Vasily Averin <vvs at virtuozzo.com>
Date: Wed Jun 2 19:48:03 2021 +0300
ms/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 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.
Link: http://lkml.kernel.org/r/20180907114334.7088-1-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko at suse.com>
Acked-by: Vlastimil Babka <vbabka at suse.cz>
Cc: David Rientjes <rientjes at google.com>
Cc: Mel Gorman <mgorman at techsingularity.net>
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
(cherry picked from ms commit 2c029a1ea3aa ("mm, page_alloc: drop
should_suppress_show_mem"))
taken from vz7 commit efa5c397b9d7 ("ms/mm, page_alloc: drop
should_suppress_show_mem")
Signed-off-by: Vasily Averin <vvs at virtuozzo.com>
---
mm/page_alloc.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index ce2f69c5b54b..fca875aa8ab3 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3489,26 +3489,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;
/*
More information about the Devel
mailing list