On 01/29/2017 07:35 PM, Anshuman Khandual wrote: > * CDM node's zones are not part of any other node's FALLBACK zonelist > * CDM node's FALLBACK list contains it's own memory zones followed by > all system RAM zones in regular order as before > * CDM node's zones are part of it's own NOFALLBACK zonelist This seems like a sane policy for the system that you're describing. But, it's still a policy, and it's rather hard-coded into the kernel. Let's say we had a CDM node with 100x more RAM than the rest of the system and it was just as fast as the rest of the RAM. Would we still want it isolated like this? Or would we want a different policy? Why do we need this hard-coded along with the cpuset stuff later in the series. Doesn't taking a node out of the cpuset also take it out of the fallback lists? > while ((node = find_next_best_node(local_node, &used_mask)) >= 0) { > +#ifdef CONFIG_COHERENT_DEVICE > + /* > + * CDM node's own zones should not be part of any other > + * node's fallback zonelist but only it's own fallback > + * zonelist. > + */ > + if (is_cdm_node(node) && (pgdat->node_id != node)) > + continue; > +#endif On a superficial note: Isn't that #ifdef unnecessary? is_cdm_node() has a 'return 0' stub when the config option is off anyway. -- 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>