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