Skip to content

Commit

Permalink
mm: mempolicy: Hide MPOL_NOOP and MPOL_MF_LAZY from userspace for now
Browse files Browse the repository at this point in the history
The use of MPOL_NOOP and MPOL_MF_LAZY to allow an application to
explicitly request lazy migration is a good idea but the actual
API has not been well reviewed and once released we have to support it.
For now this patch prevents an application using the services. This
will need to be revisited.

Signed-off-by: Mel Gorman <mgorman@suse.de>
  • Loading branch information
Mel Gorman committed Dec 11, 2012
1 parent 4b10e7d commit a720094
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
4 changes: 1 addition & 3 deletions include/uapi/linux/mempolicy.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ enum {
MPOL_BIND,
MPOL_INTERLEAVE,
MPOL_LOCAL,
MPOL_NOOP, /* retain existing policy for range */
MPOL_MAX, /* always last member of enum */
};

Expand Down Expand Up @@ -57,8 +56,7 @@ enum mpol_rebind_step {

#define MPOL_MF_VALID (MPOL_MF_STRICT | \
MPOL_MF_MOVE | \
MPOL_MF_MOVE_ALL | \
MPOL_MF_LAZY)
MPOL_MF_MOVE_ALL)

/*
* Internal flags that share the struct mempolicy flags word with
Expand Down
9 changes: 4 additions & 5 deletions mm/mempolicy.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ static struct mempolicy *mpol_new(unsigned short mode, unsigned short flags,
pr_debug("setting mode %d flags %d nodes[0] %lx\n",
mode, flags, nodes ? nodes_addr(*nodes)[0] : -1);

if (mode == MPOL_DEFAULT || mode == MPOL_NOOP) {
if (mode == MPOL_DEFAULT) {
if (nodes && !nodes_empty(*nodes))
return ERR_PTR(-EINVAL);
return NULL;
Expand Down Expand Up @@ -1186,7 +1186,7 @@ static long do_mbind(unsigned long start, unsigned long len,
if (start & ~PAGE_MASK)
return -EINVAL;

if (mode == MPOL_DEFAULT || mode == MPOL_NOOP)
if (mode == MPOL_DEFAULT)
flags &= ~MPOL_MF_STRICT;

len = (len + PAGE_SIZE - 1) & PAGE_MASK;
Expand Down Expand Up @@ -1241,7 +1241,7 @@ static long do_mbind(unsigned long start, unsigned long len,
flags | MPOL_MF_INVERT, &pagelist);

err = PTR_ERR(vma); /* maybe ... */
if (!IS_ERR(vma) && mode != MPOL_NOOP)
if (!IS_ERR(vma))
err = mbind_range(mm, start, end, new);

if (!err) {
Expand Down Expand Up @@ -2530,7 +2530,6 @@ static const char * const policy_modes[] =
[MPOL_BIND] = "bind",
[MPOL_INTERLEAVE] = "interleave",
[MPOL_LOCAL] = "local",
[MPOL_NOOP] = "noop", /* should not actually be used */
};


Expand Down Expand Up @@ -2581,7 +2580,7 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
break;
}
}
if (mode >= MPOL_MAX || mode == MPOL_NOOP)
if (mode >= MPOL_MAX)
goto out;

switch (mode) {
Expand Down

0 comments on commit a720094

Please sign in to comment.