From: Matt Mackall <mpm@selenic.com>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
Pekka J Enberg <penberg@cs.helsinki.fi>,
yanmin_zhang@linux.intel.com, Andi Kleen <andi@firstfloor.org>,
Matthew Wilcox <matthew@wil.cx>,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org
Subject: Re: [PATCH] SLUB: revert direct page allocator pass through
Date: Fri, 23 Jan 2009 14:12:50 -0600 [thread overview]
Message-ID: <1232741570.5202.498.camel@calx> (raw)
In-Reply-To: <alpine.DEB.1.10.0901230955470.13690@qirst.com>
On Fri, 2009-01-23 at 10:03 -0500, Christoph Lameter wrote:
> On Fri, 23 Jan 2009, Nick Piggin wrote:
>
> > Hmm, it lists quite a number of advantages that I guess are being
> > reverted too? What was the test case(s) that prompted this commit
> > in the first place? Better ensure it doesn't slow down...
>
> The advantage was mainly memory savings and abilty to redefined kmallocs
> to go directly to the page allocator. Totally avoids slab allocator overhead.
>
> I thought higher order allocations were not supposed to be used in
> performance critical paths? Didnt you want to do everything with order-0
> allocs?
>
> It seems that we currently need the slab allocators to compensate for the
> performance problems in the page allocator for these higher order allocs.
> I'd rather have the page allocator fixed but things are as they are.
I still think we should experiment with changing the hierarchy:
Rename all the core get_free_page* functions to buddy_*
Make SL*B call into buddy_* with a default order of N (>=0)
Replace the old get_free_page* functions with simple wrappers that
call into SL*B for order <= N or buddy_* for order >= N
This tackles several problems at once:
- fragmentation of SL*B due to small pages
- poor performance of get_free_pages moderate orders
- poor cache-locality for get_free_pages
--
http://selenic.com : development and support for Mercurial and Linux
next prev parent reply other threads:[~2009-01-23 20:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-23 8:43 [PATCH] SLUB: revert direct page allocator pass through Pekka J Enberg
2009-01-23 8:52 ` Nick Piggin
2009-01-23 9:04 ` Pekka Enberg
2009-01-23 15:03 ` Christoph Lameter
2009-01-23 15:12 ` Nick Piggin
2009-01-23 15:27 ` Christoph Lameter
2009-01-23 15:37 ` Nick Piggin
2009-01-23 15:44 ` Pekka Enberg
2009-01-23 15:54 ` Nick Piggin
2009-01-23 16:07 ` Pekka Enberg
2009-01-23 15:57 ` Christoph Lameter
2009-01-23 16:03 ` Pekka Enberg
2009-01-24 3:11 ` Zhang, Yanmin
2009-01-23 15:16 ` Pekka Enberg
2009-01-23 15:25 ` Christoph Lameter
2009-01-23 15:41 ` Nick Piggin
2009-01-23 15:59 ` Christoph Lameter
2009-01-23 16:17 ` Nick Piggin
2009-01-26 17:17 ` Christoph Lameter
2009-02-03 1:33 ` Nick Piggin
2009-02-03 17:08 ` Christoph Lameter
2009-01-23 15:42 ` Pekka Enberg
2009-01-23 20:12 ` Matt Mackall [this message]
2009-01-23 9:22 ` Zhang, Yanmin
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=1232741570.5202.498.camel@calx \
--to=mpm@selenic.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=cl@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=nickpiggin@yahoo.com.au \
--cc=penberg@cs.helsinki.fi \
--cc=yanmin_zhang@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.