aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 2aaafe82f513..36a168e383b5 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2171,12 +2171,25 @@ rebalance:
2171 2171
2172nopage: 2172nopage:
2173 if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) { 2173 if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) {
2174 printk(KERN_WARNING "%s: page allocation failure." 2174 unsigned int filter = SHOW_MEM_FILTER_NODES;
2175 " order:%d, mode:0x%x\n", 2175
2176 /*
2177 * This documents exceptions given to allocations in certain
2178 * contexts that are allowed to allocate outside current's set
2179 * of allowed nodes.
2180 */
2181 if (!(gfp_mask & __GFP_NOMEMALLOC))
2182 if (test_thread_flag(TIF_MEMDIE) ||
2183 (current->flags & (PF_MEMALLOC | PF_EXITING)))
2184 filter &= ~SHOW_MEM_FILTER_NODES;
2185 if (in_interrupt() || !wait)
2186 filter &= ~SHOW_MEM_FILTER_NODES;
2187
2188 pr_warning("%s: page allocation failure. order:%d, mode:0x%x\n",
2176 current->comm, order, gfp_mask); 2189 current->comm, order, gfp_mask);
2177 dump_stack(); 2190 dump_stack();
2178 if (!should_suppress_show_mem()) 2191 if (!should_suppress_show_mem())
2179 show_mem(); 2192 __show_mem(filter);
2180 } 2193 }
2181 return page; 2194 return page;
2182got_pg: 2195got_pg: