From: Christoph Lameter <clameter@sgi.com>
To: Andi Kleen <ak@suse.de>
Cc: Martin Bligh <mbligh@mbligh.org>,
akpm@google.com, linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
James Bottomley <James.Bottomley@steeleye.com>,
linux-mm@kvack.org
Subject: Re: [RFC] Initial alpha-0 for new page allocator API
Date: Fri, 22 Sep 2006 10:36:03 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0609221028590.7816@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <200609220817.59801.ak@suse.de>
The problems to be solved are:
1. Have a means to allocate from a range of memory that is defined by the
device driver and *not* by the architecture. Devices currently cannot rely
on GFP_DMA because the range vary according to the architecture.
2. I wish we there would be some point in the future where we could get
rid of GFP_DMAxx... As Andi notes most hardware these days is sane so
there is less need to create VM overhead by managing additional zones.
3. There are issues with memory policies coming from the process
environment that may redirect allocations. We also have additional calls
with xx_node like alloc_pages and alloc_pages_node. A new API could
fix these and allow a complete specification of how the allocation should
proceeds without strange side effect from the process (which makes
GFP_THISNODE necessary).
One easy alternate way to support allocating from a range of memory
without reworking the API would be to simply add a new page allocator
call:
struct page *alloc_pages_range(int order, gfp_t gfp_flags, unsigned long
low, unsigned long high [ , node ? ]);
This would scan through the freelists for available memory in that range
and if not found simply do page reclaim until such memory becomes
available. We could get more sophisticated than that but this would allow
allocating memory from the ranges needed by broken devices and it would
penalize the device for the problem it has and would not impact the rest
of the system.
--
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>
prev parent reply other threads:[~2006-09-22 17:36 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-22 4:02 Christoph Lameter
2006-09-22 6:17 ` Andi Kleen
2006-09-22 16:35 ` Christoph Lameter
2006-09-22 19:10 ` Andi Kleen
2006-09-22 19:17 ` Christoph Lameter
2006-09-22 19:24 ` Martin Bligh
2006-09-22 20:10 ` Alan Cox
2006-09-22 20:02 ` Andi Kleen
2006-09-22 20:14 ` Martin Bligh
2006-09-22 20:23 ` Christoph Lameter
2006-09-22 20:41 ` Jesse Barnes
2006-09-22 21:01 ` Christoph Lameter
2006-09-22 21:14 ` Jesse Barnes
2006-09-22 21:21 ` Christoph Lameter
2006-09-22 20:48 ` Andi Kleen
2006-09-22 21:13 ` Christoph Lameter
2006-09-22 21:32 ` Christoph Lameter
2006-09-22 23:34 ` More thoughts on getting rid of ZONE_DMA Andi Kleen
2006-09-23 0:23 ` Christoph Lameter
2006-09-23 0:39 ` Andi Kleen
2006-09-23 0:25 ` Christoph Lameter
2006-09-23 0:37 ` Andi Kleen
2006-09-24 2:13 ` Christoph Lameter
2006-09-24 2:36 ` Martin J. Bligh
2006-09-24 7:26 ` Andi Kleen
2006-09-24 7:19 ` Andi Kleen
2006-09-22 17:36 ` Christoph Lameter [this message]
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=Pine.LNX.4.64.0609221028590.7816@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=James.Bottomley@steeleye.com \
--cc=ak@suse.de \
--cc=akpm@google.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mbligh@mbligh.org \
/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