From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org, ak@suse.de, Mel Gorman <mel@skynet.ie>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
akpm@linux-foundation.org, pj@sgi.com,
Michael Kerrisk <mtk-manpages@gmx.net>,
Randy Dunlap <randy.dunlap@oracle.com>,
Eric Whitney <eric.whitney@hp.com>
Subject: Re: [PATCH] Document Linux Memory Policy - V2
Date: Fri, 27 Jul 2007 15:24:33 -0400 [thread overview]
Message-ID: <1185564273.5069.91.camel@localhost> (raw)
In-Reply-To: <Pine.LNX.4.64.0707271148170.16415@schroedinger.engr.sgi.com>
On Fri, 2007-07-27 at 11:55 -0700, Christoph Lameter wrote:
> On Fri, 27 Jul 2007, Lee Schermerhorn wrote:
>
> > + Shared Policy: This policy applies to "memory objects" mapped shared into
> > + one or more tasks' distinct address spaces. Shared policies are applied
> > + directly to the shared object. Thus, all tasks that attach to the object
> > + share the policy, and all pages allocated for the shared object, by any
> > + task, will obey the shared policy.
>
> This applies to shmem only not to shared memory. Shared memory can also
> come about by mmapping a file etc. Its better to describe shmem
> as an exceptional situation later and warn of the surprises coming with
> the use of memory policies on shmem in a separate section.
I do explain that later in the doc. I'll see if I can reword it to pull
that up here.
>
> > + MPOL_BIND: This mode specifies that memory must come from the
> > + set of nodes specified by the policy. The kernel builds a custom
> > + zonelist pointed to by the zonelist member of struct mempolicy,
> > + containing just the nodes specified by the Bind policy. If the kernel
> > + is unable to allocate a page from the first node in the custom zonelist,
> > + it moves on to the next, and so forth. If it is unable to allocate a
> > + page from any of the nodes in this list, the allocation will fail.
>
> The implementation details may not be useful to explain here and may
> change soon. Maybe just describe the effect?
I wanted to explain it to contrast to node zonelists and as context for
the next paragraph. I think the notion of custom zonelists is important
in the current implementation. And, I plan to keep this up to date with
the forth coming changes. Maybe it'll change before this even get's
merged into Linus' tree. But, if I could get this into -mm, I can
submit update patches making it clear what changed when.
>
> > + The memory policy APIs do not specify an order in which the nodes
> > + will be searched. However, unlike the per node zonelists mentioned
> > + above, the custom zonelist for the Bind policy do not consider the
> > + distance between the nodes. Rather, the lists are built in order
> > + of numeric node id.
>
> Yea another reson to get the nodemask as a parameter for alloc_pages().
OK. Again, just wanted to make current behavior explicit. Will update
when it changes.
>
> > +2) when tasks in two cpusets share access to a memory region, such as shared
> > + memory segments created by shmget() of mmap() with the MAP_ANONYMOUS and
> > + MAP_SHARED flags, only nodes whose memories are allowed in both cpusets
> > + may be used in the policies. Again, obtaining this information requires
> > + "stepping outside" the memory policy APIs to use the cpuset information.
> > + Furthermore, if the cpusets' "allowed memory" sets are disjoint, "local"
> > + allocation is the only valid policy.
>
> In general this works fine with a shared mapping via mmap (which is much
> more common). The problem exists if one uses shmem with the strange shared
> semantics.
If the shared mapping is with MAP_ANONYMOUS, I believe that you get
"shmem"--same issues as with "shm" [SysV shared memory]. It works
"fine" [your definition, I guess] for shared, mmap()ed files because the
policy doesn't get applied to the object and the vma policy is ignored.
As far as the shared policy semantics being "strange", let's not restart
that, uh, "discussion" in this thread. I've tried to avoid that topic
in this document, and just describe the concepts/design/behavior in the
interest of getting a baseline document. That said, undoubtedly my bias
sneaks through in places.
As I mentioned to Randy, I'll make another pass after weekend.
Have a good one,
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>
next prev parent reply other threads:[~2007-07-27 19:24 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-25 4:20 NUMA policy issues with ZONE_MOVABLE Christoph Lameter
2007-07-25 4:47 ` Nick Piggin
2007-07-25 5:05 ` Christoph Lameter
2007-07-25 5:24 ` Nick Piggin
2007-07-25 6:00 ` Christoph Lameter
2007-07-25 6:09 ` Nick Piggin
2007-07-25 9:32 ` Andi Kleen
2007-07-25 6:36 ` KAMEZAWA Hiroyuki
2007-07-25 11:16 ` Mel Gorman
2007-07-25 14:30 ` Lee Schermerhorn
2007-07-25 19:31 ` Christoph Lameter
2007-07-26 4:15 ` KAMEZAWA Hiroyuki
2007-07-26 4:53 ` Christoph Lameter
2007-07-26 7:41 ` KAMEZAWA Hiroyuki
2007-07-26 16:16 ` Mel Gorman
2007-07-26 18:03 ` Christoph Lameter
2007-07-26 18:26 ` Mel Gorman
2007-07-26 13:23 ` Mel Gorman
2007-07-26 18:07 ` Christoph Lameter
2007-07-26 22:59 ` Mel Gorman
2007-07-27 1:22 ` Christoph Lameter
2007-07-27 8:20 ` Mel Gorman
2007-07-27 15:45 ` Mel Gorman
2007-07-27 17:35 ` Christoph Lameter
2007-07-27 17:46 ` Mel Gorman
2007-07-27 18:38 ` Christoph Lameter
2007-07-27 18:00 ` [PATCH] Document Linux Memory Policy - V2 Lee Schermerhorn
2007-07-27 18:38 ` Randy Dunlap
2007-07-27 19:01 ` Lee Schermerhorn
2007-07-27 19:21 ` Randy Dunlap
2007-07-27 18:55 ` Christoph Lameter
2007-07-27 19:24 ` Lee Schermerhorn [this message]
2007-07-31 15:14 ` Mel Gorman
2007-07-31 16:34 ` Lee Schermerhorn
2007-07-31 19:10 ` Christoph Lameter
2007-07-31 19:46 ` Lee Schermerhorn
2007-07-31 19:58 ` Christoph Lameter
2007-07-31 20:23 ` Lee Schermerhorn
2007-07-31 20:48 ` [PATCH] Document Linux Memory Policy - V3 Lee Schermerhorn
2007-08-03 13:52 ` Mel Gorman
2007-07-28 7:28 ` NUMA policy issues with ZONE_MOVABLE KAMEZAWA Hiroyuki
2007-07-28 11:57 ` Mel Gorman
2007-07-28 14:10 ` KAMEZAWA Hiroyuki
2007-07-28 14:21 ` KAMEZAWA Hiroyuki
2007-07-30 12:41 ` Mel Gorman
2007-07-30 18:06 ` Christoph Lameter
2007-07-27 14:24 ` Lee Schermerhorn
2007-08-01 18:59 ` Lee Schermerhorn
2007-08-02 0:36 ` KAMEZAWA Hiroyuki
2007-08-02 17:10 ` Mel Gorman
2007-08-02 17:51 ` Lee Schermerhorn
2007-07-26 18:09 ` Lee Schermerhorn
2007-08-02 14:09 ` Mel Gorman
2007-08-02 18:56 ` Christoph Lameter
2007-08-02 19:42 ` Mel Gorman
2007-08-02 19:52 ` Christoph Lameter
2007-08-03 9:32 ` Mel Gorman
2007-08-03 16:36 ` Christoph Lameter
2007-07-25 14:27 ` Lee Schermerhorn
2007-07-25 17:39 ` Mel Gorman
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=1185564273.5069.91.camel@localhost \
--to=lee.schermerhorn@hp.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=eric.whitney@hp.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=mel@skynet.ie \
--cc=mtk-manpages@gmx.net \
--cc=pj@sgi.com \
--cc=randy.dunlap@oracle.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