All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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.