Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Paul Jackson <pj@...>
Cc: <Lee.Schermerhorn@...>, <akpm@...>, <clameter@...>, <ak@...>, <linux-kernel@...>, <mel@...>
Date: Wednesday, February 13, 2008 - 5:35 pm

On Wed, 13 Feb 2008, Paul Jackson wrote:


So let's say, like my first example from the previous email, that you have 
MPOL_INTERLEAVE | MPOL_F_RELATIVE_NODES over nodes 3-4 and your cpuset's 
mems is only nodes 5-7.  This would interleave over no nodes.  Correct?

It seems like MPOL_F_RELATIVE_NODES is primarily designed to maintain a 
certain order among the nodes it effects the mempolicy over.  It comes 
with the premise that the task doesn't already know it's cpuset mems 
(otherwise, the current implementation without MPOL_F_STATIC_NODES would 
work fine for this) so it doesn't really care what nodes it allocates 
pages on, it just cares about the order.

This works for MPOL_PREFERRED and MPOL_BIND as well, right?

I don't understand the use case for this (at all), but if you have 
workloads that require this type of setting then I can implement this as 
part of my series.  I just want to confirm that there are real world cases 
backing this so that we don't have flags with highly highly specialized 
cornercases.

 [ If a user _does_ specify MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES
   as part of their syscall, then we'll simply return -EINVAL. ]


Well, there's advantages and disadvantages to either approach.

My preference (both mode and flags stored in the same member of struct 
mempolicy):

   Advantages:

	- completely consistent with the userspace API of passing modes
	  and flags together in a pointer to an int, and

	- does not require additional formals to be added to several
	  functions, including functions outside mm/mempolicy.c.

   Disadvantage:

	- use of mpol_mode() throughout mm/mempolicy.c code to mask
	  off optional mode flags for conditionals or switch statements.

Your preference (separate mode and flags members in struct mempolicy):

   Advantages:

	- clearer implementation when dealing with modes: all existing
	  statements involving pol->policy can remain unchanged.

   Disadvantages:

	- requires additional formals to be added to several functions,
	  including functions outside mm/mempolicy.c, and

	- takes additional space in struct mempolicy (two bytes) which
	  could eventually be used for something else.

In both cases the testing of mode flags is the same as before:

	if (pol->policy & MPOL_F_STATIC_NODES) {
		...
	}
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 11:30 am)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Lee Schermerhorn, (Tue Feb 12, 8:10 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Tue Feb 12, 9:04 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 10:00 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Paul Jackson, (Tue Feb 12, 10:22 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 10:42 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Paul Jackson, (Tue Feb 12, 10:59 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 11:17 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Paul Jackson, (Tue Feb 12, 11:22 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 8:53 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 3:32 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 3:40 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 3:48 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 4:02 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 4:45 pm)
[patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 11:30 am)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Tue Feb 12, 8:14 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Tue Feb 12, 8:25 pm)
[patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Mon Feb 11, 11:30 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 6:09 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 5:38 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 5:27 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 4:23 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 7:45 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 7:55 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 8:11 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 4:32 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 3:40 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 9:44 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 6:00 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Tue Feb 12, 8:22 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:18 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 12:14 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 3:12 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 1:06 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 11:15 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Tue Feb 12, 11:52 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:03 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 12:13 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:23 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 4:03 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 5:36 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 1:04 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 3:02 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 4:29 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 6:26 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 3:45 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 6:19 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 4:14 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 5:35 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 8:27 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 7:12 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 12:01 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 2:48 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 3:05 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 3:17 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 2:58 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Christoph Lameter, (Mon Feb 11, 3:34 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, KOSAKI Motohiro, (Mon Feb 11, 2:25 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Mon Feb 11, 3:56 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Tue Feb 12, 8:25 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 8:57 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Mon Feb 11, 12:36 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 3:34 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Tue Feb 12, 11:31 am)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Tue Feb 12, 3:14 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Paul Jackson, (Mon Feb 11, 4:55 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 5:52 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Paul Jackson, (Mon Feb 11, 5:57 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 3:25 pm)