On Sat 18-08-18 22:02:14, Tetsuo Handa wrote: > On 2018/08/16 19:03, Michal Hocko wrote: > > The code is quite subtle and we have a bad history of copying stuff > > without rethinking whether the code still is needed. Which is sad and a > > clear sign that the code is too complex. I cannot say this change > > doesn't have any subtle side effects but it makes the intention clear at > > least so I _think_ it is good to go. If we find some unintended side > > effects we should simply rethink the whole reset zonelist thing. > > Does this change affect > > /* > * This is not a __GFP_THISNODE allocation, so a truncated nodemask in > * the page allocator means a mempolicy is in effect. Cpuset policy > * is enforced in get_page_from_freelist(). > */ > if (oc->nodemask && > !nodes_subset(node_states[N_MEMORY], *oc->nodemask)) { > oc->totalpages = total_swap_pages; > for_each_node_mask(nid, *oc->nodemask) > oc->totalpages += node_spanned_pages(nid); > return CONSTRAINT_MEMORY_POLICY; > } > > in constrained_alloc() called from > > /* > * Check if there were limitations on the allocation (only relevant for > * NUMA and memcg) that may require different handling. > */ > constraint = constrained_alloc(oc); > if (constraint != CONSTRAINT_MEMORY_POLICY) > oc->nodemask = NULL; > > in out_of_memory() ? No practical difference AFAICS. We are losing the nodemask for oom victims but their mere existance should make oom decisions void and so the constrain shouldn't really matter. -- Michal Hocko SUSE Labs