lkml.org 
[lkml]   [2016]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] mm: warn about allocations which stall for too long
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

\
 
 \ /
  Last update: 2016-09-23 10:32    [W:0.179 / U:0.316 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site