Re: [patch 1/4] mempolicy: convert MPOL constants to enum

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Paul Jackson
Date: Tuesday, February 12, 2008 - 5:31 pm

Lee wrote:

I tend to agree with Lee on this one.  If I recall correctly, Christoph
said something similar, regarding the change of the 'policy' field
of struct mempolicy from a short to an enum.

I'm inclined toward the original types for the 'policy' field.

Also, rather than trying to pack the new flag, MPOL_F_STATIC_NODES,
into the existing 'policy' field, I'd suggest instead adding a new
field to 'struct mempolicy' for this flag.  Since 'policy' is only a
short, and since the next field in that struct, is a union that
includes a pointer that is aligned on most arch's to at least a 4 byte
boundary, therefore there is a hole of at least two bytes, following
the short policy field, in which another short or some flag bits can be
placed, with no increase in the size of struct mempolicy.

Specifically, I'd suggest adding the one line for 'mode_f_static_nodes'
as below, and leaving the code involving the encoding of the policy
field alone.

struct mempolicy {
        atomic_t refcnt;
        short policy;   /* See MPOL_* above */
	int mode_f_static_nodes:1;			/* <== Added line <== */
        union {
                struct zonelist  *zonelist;     /* bind */
                short            preferred_node; /* preferred */
                nodemask_t       nodes;         /* interleave */
                /* undefined for default */
        } v;
        nodemask_t cpuset_mems_allowed; /* mempolicy relative to these nodes */
};

Single bit fields (The ":1" above) provide the simplest way to add
boolean flags to structs.  Let the compiler do the work of packing
and unpacking the field.

Then, rather than having to code double-negative explicit masking
operations such as:

	remap = !(mpol_flags(pol->policy) & MPOL_F_STATIC_NODES);
	if (!remap)
		blah blah ...

one can simply code:

	if (pol->mode_f_static_nodes)
		blah blah ...

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.940.382.4214
--
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, 8:30 am)
[patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 8:30 am)
[patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Mon Feb 11, 8:30 am)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Mon Feb 11, 9:36 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, KOSAKI Motohiro, (Mon Feb 11, 11:25 am)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 12:25 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 12:32 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 12:34 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Christoph Lameter, (Mon Feb 11, 12:34 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 12:40 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 12:48 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Mon Feb 11, 12:56 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Mon Feb 11, 1:02 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Mon Feb 11, 1:45 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Paul Jackson, (Mon Feb 11, 1:55 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Mon Feb 11, 2:52 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Paul Jackson, (Mon Feb 11, 2:57 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Tue Feb 12, 8:31 am)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Tue Feb 12, 12:14 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Lee Schermerhorn, (Tue Feb 12, 5:10 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, Lee Schermerhorn, (Tue Feb 12, 5:14 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Tue Feb 12, 5:22 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Tue Feb 12, 5:25 pm)
Re: [patch 2/4] mempolicy: support optional mode flags, David Rientjes, (Tue Feb 12, 5:25 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Paul Jackson, (Tue Feb 12, 5:31 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 5:53 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 5:57 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, Christoph Lameter, (Tue Feb 12, 6:04 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 7:00 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 7:42 pm)
Re: [patch 1/4] mempolicy: convert MPOL constants to enum, David Rientjes, (Tue Feb 12, 8:17 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Tue Feb 12, 8:52 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 9:03 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Tue Feb 12, 9:13 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 9:18 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 9:23 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Tue Feb 12, 10:06 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 1:03 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 2:36 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 8:15 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 9:01 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 9:14 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 10:04 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 11:48 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 11:58 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:02 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Lee Schermerhorn, (Wed Feb 13, 12:05 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:12 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 12:17 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Wed Feb 13, 1:29 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Wed Feb 13, 2:35 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 3:09 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 3:26 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 4:12 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Thu Feb 14, 5:27 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 12:40 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 12:45 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 2:38 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Thu Feb 14, 6:44 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 2:27 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 3:00 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 3:19 am)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 1:14 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 1:23 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 1:32 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 4:45 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, David Rientjes, (Fri Feb 15, 4:55 pm)
Re: [patch 3/4] mempolicy: add MPOL_F_STATIC_NODES flag, Paul Jackson, (Fri Feb 15, 5:11 pm)