On Wed, 13 Feb 2008, Paul Jackson wrote:MPOL_F_STATIC_NODES already handles the second case because you can specify nodes that aren't currently accessible because of your cpuset in the hopes that eventually they will become accessible. It's possible to pass a nodemask with all bits set so that when the cpuset's set of nodes expand, the mempolicy is effected over the intersection of the two on rebind. Other than that, perhaps if you can elaborate more on what you imagined supporting as far as cpusets growing larger (or supporting node hotplug, which is the same type of problem), we can discuss that further before I resend my patches. Ahh, since policy->cpuset_mems_allowed is only meaningful in the non-MPOL_F_STATIC_NODES case, that probably will work. For the purposes of this patchset, we can certainly do that. I'm wondering whether future expansions will require them to be separated again, however. Ok. It does, and that's why I was a little curious about your second case at the beginning of this email. The user's nodemask is always stored unaltered in policy->user_nodemask. In mpol_new(), we intersect the current accessible nodes with that nodemask to determine if there's even a mempolicy to effect. If not, mpol_new() returns ERR_PTR(-EINVAL) and we fall back to the existing policy (if any) for the VMA or task. Otherwise, we use the intersection of those two nodemasks. In mpol_rebind_policy() with MPOL_F_STATIC_NODES, we always intersect policy->user_nodemask with the set of accessible nodes (nodemask_t *newmask). So if we can now access nodes that we previously couldn't, they are now part of the interleave nodemask. A similiar situation occurs when building the zonelist for the MPOL_BIND case and you can see the change I made to MPOL_PREFERRED in the incremental patch I sent you. The only way that newly-accessible nodes will not become a part of the mempolicy nodemask is when the user's nodemask and the set of accessible nodes is disjoint when the policy was created. It is arguable whether we want to support that behavior as well (and we definitely could do it, it's not out of the scope of mempolicies). Lee had specific requirements of rejecting nodemasks that had no nodes in the intersection based on the current implementation, but we could continue discussing the possibility of setting up mempolicies that are uneffected when they are created and only become policy when they are rebound later. David --
| Hiten Pandya | Re: up? (emacs docbook xml ide) |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Roland Dreier | Re: Integration of SCST in the mainstream Linux kernel |
| Florian Schmidt | blacklist kernel boot option |
git: | |
| Linus Torvalds | Re: iptables very slow after commit 784544739a25c30637397ace5489eeb6e15d7d49 |
| Arjan van de Ven | Re: [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
