Re: [PATCH] mm: warn about allocations which stall for too long

From: Michal Hocko
Date: Mon Sep 26 2016 - 04:13:25 EST


On Sat 24-09-16 23:19:04, Balbir Singh wrote:
>
>
> On 24/09/16 03:34, Dave Hansen wrote:
> > On 09/23/2016 01:15 AM, Michal Hocko wrote:
> >> + /* 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),
> >> + order, gfp_mask, &gfp_mask);
> >> + stall_timeout += 10 * HZ;
> >> + dump_stack();
> >> + }
> >
> > This would make an awesome tracepoint. There's probably still plenty of
> > value to having it in dmesg, but the configurability of tracepoints is
> > hard to beat.
>
> An awesome tracepoint and a great place to trigger other tracepoints. With stall timeout
> increasing every time, do we only care about the first instance when we exceeded stall_timeout?
> Do we debug just that instance?

I am not sure I understand you here. The stall_timeout is increased to
see whether the situation is permanent of ephemeral. This is similar to
RCU lockup reports.
--
Michal Hocko
SUSE Labs