> Suppose the current mempolicy nodes is 0-2, we can remap it from 0-2 to 2,> then we can remap it from 2 to 1, but we can't remap it from 2 to 0-2.> > that is to say it can't be remaped to a large set of allowed nodes, and the task> just can use the small set of nodes for ever, even the large set of nodes is allowed,> I think it is unreasonable.>

That's been the behavior for at least three years so changing it from under the applications isn't acceptable, see Documentation/vm/numa_memory_policy.txt regarding mempolicy rebinds and the two flags that are defined that can be used to adjust the behavior.

The pol->v.nodes = nodes_empty(tmp) ? *nodes : tmp fix is welcome, however, as a standalone patch.