On Tue, Apr 26, 2016 at 03:41:22PM +0200, Vlastimil Babka wrote: > On 04/15/2016 11:07 AM, Mel Gorman wrote: > >There is a debugging check for callers that specify __GFP_DIRECT_RECLAIM > >from a context that cannot sleep. Triggering this is almost certainly > >a bug but it's also overhead in the fast path. > > For CONFIG_DEBUG_ATOMIC_SLEEP, enabling is asking for the overhead. But for > CONFIG_PREEMPT_VOLUNTARY which turns it into _cond_resched(), I guess it's > not. > Either way, it struck me as odd. It does depend on the config and it's marginal so if there is a problem then I can drop it. > >Move the check to the slow > >path. It'll be harder to trigger as it'll only be checked when watermarks > >are depleted but it'll also only be checked in a path that can sleep. > > Hmm what about zone_reclaim_mode=1, should the check be also duplicated to > that part of get_page_from_freelist()? > zone_reclaim has a !gfpflags_allow_blocking() check, does not call cond_resched() before that check so it does not fall into an accidental sleep path. I'm not seeing why the check is necessary there. -- Mel Gorman 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>