Messages in this thread | | | Date | Tue, 12 Feb 2008 03:25:15 +0900 | From | "KOSAKI Motohiro" <> | Subject | Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag |
| |
Hi David,
In general, I like this feature. and I found no bug in patch [1/4] and [2/4].
> @@ -218,21 +167,27 @@ static struct mempolicy *mpol_new(enum mempolicy_mode mode, > return ERR_PTR(-ENOMEM); > flags &= MPOL_MODE_FLAGS; > atomic_set(&policy->refcnt, 1); > + cpuset_update_task_memory_state(); > + nodes_and(cpuset_context_nmask, *nodes, cpuset_current_mems_allowed); > switch (mode) { > case MPOL_INTERLEAVE: > - policy->v.nodes = *nodes; > + if (nodes_empty(*nodes)) > + return ERR_PTR(-EINVAL);
need kmem_cache_free(policy_cache, policy) before return?
> + policy->v.nodes = cpuset_context_nmask; > if (nodes_weight(policy->v.nodes) == 0) { > kmem_cache_free(policy_cache, policy); > return ERR_PTR(-EINVAL); > } > break; > case MPOL_PREFERRED: > - policy->v.preferred_node = first_node(*nodes); > + policy->v.preferred_node = first_node(cpuset_context_nmask); > if (policy->v.preferred_node >= MAX_NUMNODES) > policy->v.preferred_node = -1; > break; > case MPOL_BIND: > - policy->v.zonelist = bind_zonelist(nodes); > + if (nodes_empty(*nodes)) > + return ERR_PTR(-EINVAL);
ditto
Thanks!
| |