On Fri 23-09-16 16:29:36, Hillf Danton wrote: [...] > > @@ -3659,6 +3661,15 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > > else > > no_progress_loops++; > > > > + /* Make sure we know about allocations which stall for too long */ > > + if (!(gfp_mask & __GFP_NOWARN) && time_after(jiffies, alloc_start + stall_timeout)) { > > + pr_warn("%s: page alloction stalls for %ums: order:%u mode:%#x(%pGg)\n", > > + current->comm, jiffies_to_msecs(jiffies-alloc_start), > > Better if pid is also printed. I've tried to be consistent with warn_alloc_failed and that doesn't print pid either. Maybe both of them should. Dunno > > + order, gfp_mask, &gfp_mask); > > + stall_timeout += 10 * HZ; > > Alternatively alloc_start = jiffies; Then we would lose the cumulative time in the output which is imho helpful because you cannot tell whether the new warning is a new request or the old one still looping. > > + dump_stack(); > > + } > > + > > if (should_reclaim_retry(gfp_mask, order, ac, alloc_flags, > > did_some_progress > 0, no_progress_loops)) > > goto retry; > > -- > > 2.9.3 > > > thanks > Hillf > -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>