Lines Matching refs:pol

158 	struct mempolicy *pol = p->mempolicy;
161 if (pol)
162 return pol;
166 pol = &preferred_node_policy[node];
168 if (pol->mode)
169 return pol;
176 int (*create)(struct mempolicy *pol, const nodemask_t *nodes);
177 void (*rebind)(struct mempolicy *pol, const nodemask_t *nodes);
180 static inline int mpol_store_user_nodemask(const struct mempolicy *pol)
182 return pol->flags & MPOL_MODE_FLAGS;
193 static int mpol_new_interleave(struct mempolicy *pol, const nodemask_t *nodes)
197 pol->v.nodes = *nodes;
201 static int mpol_new_preferred(struct mempolicy *pol, const nodemask_t *nodes)
204 pol->flags |= MPOL_F_LOCAL; /* local allocation */
208 pol->v.preferred_node = first_node(*nodes);
212 static int mpol_new_bind(struct mempolicy *pol, const nodemask_t *nodes)
216 pol->v.nodes = *nodes;
229 static int mpol_set_nodemask(struct mempolicy *pol,
234 /* if mode is MPOL_DEFAULT, pol is NULL. This is right. */
235 if (pol == NULL)
242 if (pol->mode == MPOL_PREFERRED && nodes_empty(*nodes))
245 if (pol->flags & MPOL_F_RELATIVE_NODES)
250 if (mpol_store_user_nodemask(pol))
251 pol->w.user_nodemask = *nodes;
253 pol->w.cpuset_mems_allowed =
258 ret = mpol_ops[pol->mode].create(pol, &nsc->mask2);
260 ret = mpol_ops[pol->mode].create(pol, NULL);
320 static void mpol_rebind_default(struct mempolicy *pol, const nodemask_t *nodes)
324 static void mpol_rebind_nodemask(struct mempolicy *pol, const nodemask_t *nodes)
328 if (pol->flags & MPOL_F_STATIC_NODES)
329 nodes_and(tmp, pol->w.user_nodemask, *nodes);
330 else if (pol->flags & MPOL_F_RELATIVE_NODES)
331 mpol_relative_nodemask(&tmp, &pol->w.user_nodemask, nodes);
333 nodes_remap(tmp, pol->v.nodes,pol->w.cpuset_mems_allowed,
335 pol->w.cpuset_mems_allowed = *nodes;
341 pol->v.nodes = tmp;
344 static void mpol_rebind_preferred(struct mempolicy *pol,
349 if (pol->flags & MPOL_F_STATIC_NODES) {
350 int node = first_node(pol->w.user_nodemask);
353 pol->v.preferred_node = node;
354 pol->flags &= ~MPOL_F_LOCAL;
356 pol->flags |= MPOL_F_LOCAL;
357 } else if (pol->flags & MPOL_F_RELATIVE_NODES) {
358 mpol_relative_nodemask(&tmp, &pol->w.user_nodemask, nodes);
359 pol->v.preferred_node = first_node(tmp);
360 } else if (!(pol->flags & MPOL_F_LOCAL)) {
361 pol->v.preferred_node = node_remap(pol->v.preferred_node,
362 pol->w.cpuset_mems_allowed,
364 pol->w.cpuset_mems_allowed = *nodes;
375 static void mpol_rebind_policy(struct mempolicy *pol, const nodemask_t *newmask)
377 if (!pol || pol->mode == MPOL_LOCAL)
379 if (!mpol_store_user_nodemask(pol) && !(pol->flags & MPOL_F_LOCAL) &&
380 nodes_equal(pol->w.cpuset_mems_allowed, *newmask))
383 mpol_ops[pol->mode].rebind(pol, newmask);
771 struct mempolicy *pol)
782 new = mpol_dup(pol);
941 struct mempolicy *pol = current->mempolicy, *pol_refcount = NULL;
970 pol = vma->vm_ops->get_policy(vma, addr);
972 pol = vma->vm_policy;
976 if (!pol)
977 pol = &default_policy; /* indicates default behavior */
984 * lookup_node() only "pol" remains valid, "vma"
987 pol_refcount = pol;
989 mpol_get(pol);
994 } else if (pol == current->mempolicy &&
995 pol->mode == MPOL_INTERLEAVE) {
996 *policy = next_node_in(current->il_prev, pol->v.nodes);
1002 *policy = pol == &default_policy ? MPOL_DEFAULT :
1003 pol->mode;
1008 *policy |= (pol->flags & MPOL_MODE_FLAGS);
1013 if (mpol_store_user_nodemask(pol)) {
1014 *nmask = pol->w.user_nodemask;
1017 get_policy_nodemask(pol, nmask);
1023 mpol_cond_put(pol);
1778 struct mempolicy *pol = NULL;
1782 pol = vma->vm_ops->get_policy(vma, addr);
1784 pol = vma->vm_policy;
1792 if (mpol_needs_cond_ref(pol))
1793 mpol_get(pol);
1797 return pol;
1815 struct mempolicy *pol = __get_vma_policy(vma, addr);
1817 if (!pol)
1818 pol = get_task_policy(current);
1820 return pol;
1825 struct mempolicy *pol;
1830 pol = vma->vm_ops->get_policy(vma, vma->vm_start);
1831 if (pol && (pol->flags & MPOL_F_MOF))
1833 mpol_cond_put(pol);
1838 pol = vma->vm_policy;
1839 if (!pol)
1840 pol = get_task_policy(current);
1842 return pol->flags & MPOL_F_MOF;
1957 * node in pol->v.nodes (starting from n=0), wrapping around if n exceeds the
1960 static unsigned offset_il_node(struct mempolicy *pol, unsigned long n)
1962 unsigned nnodes = nodes_weight(pol->v.nodes);
1970 nid = first_node(pol->v.nodes);
1972 nid = next_node(nid, pol->v.nodes);
1977 static inline unsigned interleave_nid(struct mempolicy *pol,
1993 return offset_il_node(pol, off);
1995 return interleave_nodes(pol);
2172 struct mempolicy *pol;
2177 pol = get_vma_policy(vma, addr);
2179 if (pol->mode == MPOL_INTERLEAVE) {
2182 nid = interleave_nid(pol, vma, addr, PAGE_SHIFT + order);
2183 mpol_cond_put(pol);
2201 if (pol->mode == MPOL_PREFERRED && !(pol->flags & MPOL_F_LOCAL))
2202 hpage_node = pol->v.preferred_node;
2204 nmask = policy_nodemask(gfp, pol);
2206 mpol_cond_put(pol);
2228 nmask = policy_nodemask(gfp, pol);
2229 preferred_nid = policy_node(gfp, pol, node);
2231 mpol_cond_put(pol);
2254 struct mempolicy *pol = &default_policy;
2258 pol = get_task_policy(current);
2264 if (pol->mode == MPOL_INTERLEAVE)
2265 page = alloc_page_interleave(gfp, order, interleave_nodes(pol));
2268 policy_node(gfp, pol, numa_node_id()),
2269 policy_nodemask(gfp, pol));
2277 struct mempolicy *pol = mpol_dup(vma_policy(src));
2279 if (IS_ERR(pol))
2280 return PTR_ERR(pol);
2281 dst->vm_policy = pol;
2421 struct mempolicy *pol = NULL;
2430 pol = sn->policy;
2433 return pol;
2461 struct mempolicy *pol;
2470 pol = get_vma_policy(vma, addr);
2471 if (!(pol->flags & MPOL_F_MOF))
2474 switch (pol->mode) {
2478 polnid = offset_il_node(pol, pgoff);
2482 if (pol->flags & MPOL_F_LOCAL)
2485 polnid = pol->v.preferred_node;
2496 if (node_isset(curnid, pol->v.nodes))
2501 &pol->v.nodes);
2510 if (pol->flags & MPOL_F_MORON) {
2520 mpol_cond_put(pol);
2533 struct mempolicy *pol;
2536 pol = task->mempolicy;
2539 mpol_put(pol);
2550 unsigned long end, struct mempolicy *pol)
2554 node->policy = pol;
2558 struct mempolicy *pol)
2567 newpol = mpol_dup(pol);
2997 * @pol: pointer to mempolicy to be formatted
2999 * Convert @pol into a string. If @buffer is too short, truncate the string.
3003 void mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol)
3010 if (pol && pol != &default_policy && !(pol->flags & MPOL_F_MORON)) {
3011 mode = pol->mode;
3012 flags = pol->flags;
3022 node_set(pol->v.preferred_node, nodes);
3026 nodes = pol->v.nodes;