On 01/30/2017 11:24 PM, Dave Hansen wrote: > On 01/29/2017 07:35 PM, Anshuman Khandual wrote: >> + if ((new_pol->mode == MPOL_BIND) >> + && nodemask_has_cdm(new_pol->v.nodes)) >> + set_vm_cdm(vma); > So, if you did: > > mbind(addr, PAGE_SIZE, MPOL_BIND, all_nodes, ...); > mbind(addr, PAGE_SIZE, MPOL_BIND, one_non_cdm_node, ...); > > You end up with a VMA that can never have KSM done on it, etc... Even > though there's no good reason for it. I guess /proc/$pid/smaps might be > able to help us figure out what was going on here, but that still seems > like an awful lot of damage. Agreed, this VMA should not remain tagged after the second call. It does not make sense. For this kind of scenarios we can re-evaluate the VMA tag every time the nodemask change is attempted. But if we are looking for some runtime re-evaluation then we need to steal some cycles are during general VMA processing opportunity points like merging and split to do the necessary re-evaluation. Should do we do these kind two kinds of re-evaluation to be more optimal ? -- 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>