linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Paul Jackson <pj@sgi.com>, David Rientjes <rientjes@google.com>
Cc: Andi Kleen <ak@suse.de>, Christoph Lameter <clameter@sgi.com>,
	cpw@sgi.com, linux-mm <linux-mm@kvack.org>
Subject: Couple of questions about mempolicy rebinding
Date: Mon, 17 Mar 2008 16:36:47 -0400	[thread overview]
Message-ID: <1205786207.5297.30.camel@localhost> (raw)
In-Reply-To: <alpine.DEB.1.00.0803131255150.32474@chino.kir.corp.google.com>

Paul, David:

Like the subject says, I have a couple of questions that arose while
looking through the mempolicy code for corner cases that might be
affected by some pending cleanup patches.  Nothing major, I think, I
just want to understand.  I'm looking at 25-rc5-mm1 plus the recent
patch:  "disallow static or relative flags for local preferred".

1) In __mpol_copy():  when the "current_cpuset_is_being_rebound", why do
we rebind the old policy policy and then copy it to the new?  Seems like
the old policy will get rebound in due time if, indeed, it needs to be
rebound.  I don't see any usage now, where it won't, but this seems less
general than just rebinding the new copy.  E.g., the old mempolicy being
copied may be a context-free policy that shouln't be rebound.   I think
we should at least add a comment to warn future callers.  Comments?

2) In mpol_rebind_nodemask():  this function is shared by bind and
interleave policy, and is used to rebind both task and vma policies.
However, we unconditionally update current->il_next.  Probably not an
issue for interleave vs bind because, in the case of bind policy,
il_next is meaningless.  However, il_next is used only to interleave
based on task policy [for page cache and slab allocations].  Any
allocation based on a vma policy will use the address offset into the
vma to interleave.  So, I think it's technically incorrect to update
il_next when we're rebinding a vma policy.  It may contain nodes that
are not in the task policy and vice versa.  

If we were to address this, a couple of methods come to mind:

a) add an internal mode flag--e.g., MPOL_F_TASK_POLICY--to indicate task
vs vma policy to the rebind ops, or

b) pass a task vs vma flag parameter to mpol_rebind_policy() and down to
the rebind ops.  However, how would we tell in __mpol_copy() which we're
dealing with?

Comments?

Lee

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

       reply	other threads:[~2008-03-17 20:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200803122118.03942.ak@suse.de>
     [not found] ` <alpine.DEB.1.00.0803131219380.28673@chino.kir.corp.google.com>
     [not found]   ` <1205437802.5300.69.camel@localhost>
     [not found]     ` <alpine.DEB.1.00.0803131255150.32474@chino.kir.corp.google.com>
2008-03-17 20:36       ` Lee Schermerhorn [this message]
2008-03-20  7:11         ` Couple of questions about mempolicy rebinding Paul Jackson
2008-03-21 20:32         ` David Rientjes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1205786207.5297.30.camel@localhost \
    --to=lee.schermerhorn@hp.com \
    --cc=ak@suse.de \
    --cc=clameter@sgi.com \
    --cc=cpw@sgi.com \
    --cc=linux-mm@kvack.org \
    --cc=pj@sgi.com \
    --cc=rientjes@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).