public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [bug ?] do_get_mempolicy()
@ 2008-07-03 20:44 John Blackwood
  2008-07-03 21:44 ` David Rientjes
  2008-07-08 13:23 ` Lee Schermerhorn
  0 siblings, 2 replies; 6+ messages in thread
From: John Blackwood @ 2008-07-03 20:44 UTC (permalink / raw)
  To: linux-kernel; +Cc: Lee Schermerhorn, Joe Korty

Hi Lee,

I'm having unexpected results with get_mempolicy(2) in 2.6.26, and
I am hoping that you can either agree with me, or maybe comment on my
misconceptions.

When I have a task with no special task mempolicy (the default mempolicy),
when I call get_mempolicy(2), it returns a policy value of 2 (MPOL_BIND)
with a NULL nodemask.

I believe that this is because of the code in do_get_mempolicy() that does:

  *policy |= pol->flags;

in the else case when flags do not contain MPOL_F_NODE.

I guess I don't understand why we are ORing in the pol->flags into the
*policy value.  For example, when this is for the default_policy, the
MPOL_F_LOCAL flag (which has a value of 2) gets stuffed into the *policy
location, and a get_mempolicy(2) caller sees this as the MPOL_BIND
mempolicy.

Maybe the "*policy |= pol->flags;" line should be removed ?

That is, maybe it was valid at some point, but subsequent changes
make this line of code no longer valid ?

Sorry if I'm out-to-lunch here...

Thanks very much for you time and considerations on this issue.


^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [bug ?] do_get_mempolicy()
@ 2008-07-07 14:41 John Blackwood
  0 siblings, 0 replies; 6+ messages in thread
From: John Blackwood @ 2008-07-07 14:41 UTC (permalink / raw)
  To: David Rientjes; +Cc: linux-kernel@vger.kernel.org, Lee Schermerhorn, Joe Korty

 > Subject: Re: [bug ?] do_get_mempolicy()
 > From: David Rientjes <rientjes@google.com>
 > Date: Mon, 7 Jul 2008 03:05:28 -0400
 > To: "Blackwood, John" <john.blackwood@ccur.com>
 > CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, 
Lee Schermerhorn <lee.schermerhorn@hp.com>, "Korty, Joe" 
<joe.korty@ccur.com>
 >
 > On Thu, 3 Jul 2008, David Rientjes wrote:
 >
 > > > You're right, the flags member of struct mempolicy has subsequently
 > > > changed to carry "internal" flags that are not supposed to be 
exposed to
 > > > userspace via the get_mempolicy() API.
 > > >
 >
 > John, please give 2.6.26-rc9 a try and let me know if there's any
 > outstanding issues.

Hi David,

get_mempolicy()/do_get_mempolicy() is working fine for me now.

Thanks for your help and quick response.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-07-08 14:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-03 20:44 [bug ?] do_get_mempolicy() John Blackwood
2008-07-03 21:44 ` David Rientjes
2008-07-07  7:05   ` David Rientjes
2008-07-08 13:43   ` Lee Schermerhorn
2008-07-08 13:23 ` Lee Schermerhorn
  -- strict thread matches above, loose matches on Subject: below --
2008-07-07 14:41 John Blackwood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox