On Wed 18-11-15 15:57:45, Vlastimil Babka wrote: [...] > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -3046,32 +3046,36 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > > * allocations are system rather than user orientated > > */ > > ac->zonelist = node_zonelist(numa_node_id(), gfp_mask); > > - do { > > - page = get_page_from_freelist(gfp_mask, order, > > - ALLOC_NO_WATERMARKS, ac); > > - if (page) > > - goto got_pg; > > - > > - if (gfp_mask & __GFP_NOFAIL) > > - wait_iff_congested(ac->preferred_zone, > > - BLK_RW_ASYNC, HZ/50); > > I've been thinking if the lack of unconditional wait_iff_congested() can affect > something negatively. I guess not? Considering that the wait_iff_congested is removed only for PF_MEMALLOC with __GFP_NOFAIL which should be non-existent in the kernel then I think the risk is really low. Even if there was a caller _and_ there was a congestion then the behavior wouldn't be much more worse than what we have currently. The system is out of memory hoplessly if ALLOC_NO_WATERMARKS allocation fails. -- 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>