Messages in this thread | | | Subject | Re: [patch -mm 2/2] mempolicy: use default_policy mode instead of MPOL_DEFAULT | From | Lee Schermerhorn <> | Date | Mon, 10 Mar 2008 09:48:01 -0400 |
| |
On Sun, 2008-03-09 at 00:19 +0100, Andi Kleen wrote: > > Using MPOL_DEFAULT purely for falling back to the task or system-wide > > policy, however, seems confusing. The semantics seem to indicate that > > MPOL_DEFAULT represents the system-wide default policy without any > > preferred node or set of nodes to bind or interleave. So if a VMA has a > > policy of MPOL_DEFAULT then, to me, it seems like that indicates the > > absence of a specific policy, not a mandate to fallback to the task > > policy. > > I designed MPOL_DEFAULT on vma originally to be a fallback to the task policy. > > Absence of specific policy would be MPOL_PREFERRED with -1 node.
Not sure what you mean here, Andi.
"MPOL_PREFERRED with -1 node" == "local allocation", right?
Whereas, in the task mempolicy or vma policy or shared policy, the lack of a specific policy--i.e., a null mempolicy pointer, or no policy at that offset in a shared policy rbtree--means fall back to surrounding context, right? As far back as I've looked, mempolicy.c implemented MPOL_DEFAULT, passed to set_mempolicy() or mbind(), by deleting the target policy, resulting in "fall back".
The only place that MPOL_DEFAULT actually occurs in a struct mempolicy is in the system default policy. I think we can simplify the code and documentation--not have to explain the context dependent meaning of MPOL_DEFAULT--by making it simply an API request to remove the target policy and establish "default behavior" for that context--i.e., fallback.
Lee > > -Andi > > >
| |