From: Paul Jackson <pj@sgi.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: mel@csn.ul.ie, akpm@osdl.org, linux-mm@kvack.org, jes@sgi.com,
apw@shadowen.org
Subject: Re: [1/3] Add __GFP_THISNODE to avoid fallback to other nodes and ignore cpuset/memory policy restrictions.
Date: Tue, 8 Aug 2006 10:47:52 -0700 [thread overview]
Message-ID: <20060808104752.3e7052dd.pj@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0608081001220.27866@schroedinger.engr.sgi.com>
> > alloc_pages_node() would be altered to call alloc_pages_zonelist() with the
> > currect zonelist. To avoid fallbacks, callers would need a helper function
> > that provided a zonelist with just zones in a single node.
>
> We would need a whole selection of allocators for this purpose. Some
> candidates:
Would we really need "a whole selection"? Seems like we just
need a variant of alloc_pages_node(), for now.
My recollection is that most calls to alloc_pages_node() and
other node specific allocators really mean:
* get memory on or near to the specified node (best effort)
but a few such calls, such as from the memory migration code
(which is determined to recreate the relative per-node memory layout
across the migration) really mean:
* get memory on -exactly- this node (Pike's Peak or bust)
If I were God, we'd rename 'alloc_pages_node()' to be instead
'alloc_pages_near_node()', and have another routine named
'alloc_pages_exact_node()' for use in a few places such as the
migration code. It's mildly unfortunate that many of the callers
of 'alloc_pages_node()' (using my God-like powers of mind reading)
are expecting -exactly- that node, not just a best effort -near-
that node. Fortunately, they don't know what they want.
Back to reality ... rather than a "whole set of allocators", how
about just provide such exact node allocators on demand, as needed
by the few calls, such as migration, that need it.
For example, add an 'alloc_pages_exact_node()' to be used by the
new_page_node() in the migration code, and the uncached_add_chunk()
in kernel/uncached.c. It would pass a zonelist with just zones from
the allowed node to __alloc_pages(). Such a routine sounds very much
like an MPOL_BIND on a single node. Perhaps there is potential synergy
between the implementation of MPOL_BIND and 'alloc_pages_exact_node'.
So far, only alloc_pages_exact_node is needed, not "a whole selection."
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
--
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:[~2006-08-08 17:47 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-08 16:33 Christoph Lameter
2006-08-08 16:34 ` [2/3] sys_move_pages: Do not fall back to other nodes Christoph Lameter
2006-08-08 16:37 ` [3/3] Guarantee that the uncached allocator gets pages on the correct node Christoph Lameter
2006-08-08 16:56 ` [1/3] Add __GFP_THISNODE to avoid fallback to other nodes and ignore cpuset/memory policy restrictions Andy Whitcroft
2006-08-08 17:01 ` Christoph Lameter
2006-08-08 16:59 ` Mel Gorman
2006-08-08 17:03 ` Christoph Lameter
2006-08-08 17:16 ` Mel Gorman
2006-08-08 17:51 ` Christoph Lameter
2006-08-08 17:47 ` Paul Jackson [this message]
2006-08-08 17:59 ` Christoph Lameter
2006-08-08 18:18 ` Paul Jackson
2006-08-08 18:49 ` Christoph Lameter
2006-08-08 20:35 ` Paul Jackson
2006-08-09 9:33 ` Mel Gorman
2006-08-09 1:34 ` KAMEZAWA Hiroyuki
2006-08-09 2:00 ` Christoph Lameter
2006-08-10 19:41 ` Andrew Morton
2006-08-11 3:16 ` Christoph Lameter
2006-08-11 18:08 ` Andrew Morton
2006-08-11 18:15 ` Christoph Lameter
2006-08-11 18:42 ` Andrew Morton
2006-08-11 18:51 ` Christoph Lameter
2006-08-11 19:15 ` Andrew Morton
2006-08-11 19:16 ` Christoph Lameter
2006-08-11 19:41 ` Dave McCracken
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=20060808104752.3e7052dd.pj@sgi.com \
--to=pj@sgi.com \
--cc=akpm@osdl.org \
--cc=apw@shadowen.org \
--cc=clameter@sgi.com \
--cc=jes@sgi.com \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
/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