From: Andy Whitcroft <apw@shadowen.org>
To: Nick Piggin <npiggin@suse.de>
Cc: Dave McCracken <dave.mccracken@oracle.com>,
Mel Gorman <mel@skynet.ie>,
Andrew Morton <akpm@linux-foundation.org>,
kenchen@google.com, jschopp@austin.ibm.com,
kamezawa.hiroyu@jp.fujitsu.com, a.p.zijlstra@chello.nl,
y-goto@jp.fujitsu.com, clameter@sgi.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: -mm merge plans -- anti-fragmentation
Date: Wed, 11 Jul 2007 14:03:28 +0100 [thread overview]
Message-ID: <20070711130328.GA14807@shadowen.org> (raw)
In-Reply-To: <20070711025946.GD27475@wotan.suse.de>
On Wed, Jul 11, 2007 at 04:59:46AM +0200, Nick Piggin wrote:
> > Yes, these projects have workarounds, because they have to. But the
> > workarounds are painful and often require that the user specify in advance
> > what memory they intend to use for this purpose, something users often have
> > to learn by trial and error. Mel's patches would eliminate this barrier to
> > use of the features.
> >
> > I don't see Mel's patches as "a fundamental change in direction". I think
> > you're overstating the case. I see it as fixing a deficiency in the design
> > of the page allocator, and a long overdue fix.
>
> I would still say that with Mel's patches in, you need to have a fallback
> to order-0 because memory can still get fragemnted. But no Mel's patches
> are not exactly a fundamental change in direction itself, but introducing
> higher order allocations without fallbacks is a change (OK, order 1 or 2
> is used today, and mostly because of the nature of the allocator they're OK
> too, but if we're talking about like 64K+ of contiguous pages).
However much one improves fragmentation the chances of finding a
higher order page is always going to be lower than that of geting
an order-0, there are less of them for a start. It is pretty much
inevitable that you would want to have a fallback for anything
which is critical for system continuation. The thrust of the
anti-fragmentation work is not to claim a guarenteed availability but
to expand the range of order over which we find a high probability
of availability. As you say elsewhere orders 0-2 pretty much work
with buddy even in the face of random allocation, where intution
might indicate it should not. Simplistic reclaim can find us a page.
Indeed you then find that the kernel uses those sizes in preference
to order-0 for simplicity as they can be pretty much relied on, as
is done with the process kernel stacks. Much of what is proposed
as uses for this work is an extension of this, using bigger pages
where available for performance or simplicity. SLUB as an example is
making use of the fact that general availablity of near zero order
is virtually guarenteed. Obviously as order increases cirtainly
decreases and you have to trade off the ramifications of failure
to allocate against the cost of handling that failure.
Specifically thinking about the pagecache, a fusion of Christoph's
high order pagecache with fsblocks ability to handle discontigious
pages at higher order sounds like it could be a very powerful
solution to both problems, offering contigious pages where available
and working regardless where not.
-apw
next prev parent reply other threads:[~2007-07-11 13:45 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-10 10:20 -mm merge plans -- anti-fragmentation Mel Gorman
2007-07-10 11:01 ` KAMEZAWA Hiroyuki
2007-07-10 11:12 ` Mel Gorman
2007-07-10 11:38 ` KAMEZAWA Hiroyuki
2007-07-10 15:50 ` Mel Gorman
2007-07-10 11:04 ` Peter Zijlstra
2007-07-10 13:24 ` Mel Gorman
2007-07-10 13:03 ` Nick Piggin
2007-07-10 13:55 ` Mel Gorman
2007-07-10 18:47 ` Christoph Lameter
2007-07-10 18:46 ` Christoph Lameter
2007-07-11 9:48 ` Mel Gorman
2007-07-10 14:29 ` Dave McCracken
2007-07-10 15:23 ` Nick Piggin
2007-07-10 17:11 ` Dave McCracken
2007-07-11 2:59 ` Nick Piggin
2007-07-11 10:01 ` Mel Gorman
2007-07-11 13:03 ` Andy Whitcroft [this message]
2007-07-11 8:55 ` Christoph Hellwig
2007-07-10 18:50 ` Christoph Lameter
2007-07-11 10:05 ` Mel Gorman
2007-07-12 19:29 ` Andrew Morton
2007-07-12 21:32 ` Mel Gorman
2007-07-13 15:56 ` [PATCH] Add a movablecore= parameter for sizing ZONE_MOVABLE Mel Gorman
2007-07-14 8:28 ` Nick Piggin
2007-07-14 13:02 ` Mel Gorman
2007-07-15 13:47 ` KAMEZAWA Hiroyuki
2007-07-13 10:20 ` -mm merge plans -- anti-fragmentation Andy Whitcroft
2007-07-13 16:58 ` Christoph Lameter
2007-07-13 17:02 ` Nish Aravamudan
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=20070711130328.GA14807@shadowen.org \
--to=apw@shadowen.org \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=dave.mccracken@oracle.com \
--cc=jschopp@austin.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kenchen@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@skynet.ie \
--cc=npiggin@suse.de \
--cc=y-goto@jp.fujitsu.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