On Wed 14-06-17 15:42:58, Michal Hocko wrote: > On Wed 14-06-17 15:18:26, Vlastimil Babka wrote: > > On 06/13/2017 11:00 AM, Michal Hocko wrote: > [...] > > > @@ -1717,13 +1640,22 @@ struct page *alloc_huge_page_node(struct hstate *h, int nid) > > > page = dequeue_huge_page_node(h, nid); > > > spin_unlock(&hugetlb_lock); > > > > > > - if (!page) > > > - page = __alloc_buddy_huge_page_no_mpol(h, nid); > > > + if (!page) { > > > + nodemask_t nmask; > > > + > > > + if (nid != NUMA_NO_NODE) { > > > + nmask = NODE_MASK_NONE; > > > + node_set(nid, nmask); > > > > TBH I don't like this hack too much, and would rather see __GFP_THISNODE > > involved, which picks a different (short) zonelist. Also it's allocating > > nodemask on stack, which we generally avoid? Although the callers > > currently seem to be shallow. > > Fair enough. That would require pulling gfp mask handling up the call > chain. This on top of this patch + refreshes for other patches later in > the series as they will conflict now? I've rebase the attempts/hugetlb-zonelists branch for an easier review. -- 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>