From: Christoph Lameter <clameter@sgi.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mel@csn.ul.ie>,
linux-mm@kvack.org, Nick Piggin <npiggin@suse.de>,
Pekka J Enberg <penberg@cs.helsinki.fi>
Subject: Re: SLUB tbench regression due to page allocator deficiency
Date: Sat, 9 Feb 2008 16:19:39 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0802091549120.13328@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20080209143518.ced71a48.akpm@linux-foundation.org>
On Sat, 9 Feb 2008, Andrew Morton wrote:
> On Sat, 9 Feb 2008 13:45:11 -0800 (PST) Christoph Lameter <clameter@sgi.com> wrote:
>
> > Isnt there a way that we can make the page allocator handle PAGE_SIZEd
> > allocations in such a way that is competitive with the slab allocators?
> > The cycle count for an allocation needs to be <100 not just below 1000 as
> > it is now.
> Well. Where are the cycles spent?
No idea. This is from some measurements I took with my page allocator
benchmarks. For the tests see the code at
git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm.git tests
We do a gazillion of tests before doing anything. Most of that is NUMA
stuff it seems but even in SMP this is still signficant.
> We are notorious for sucking but I don't think even we suck enough to have
> left a 10x optimisation opportunity in the core page allocator ;)
The regression only occurs if there is intensive allocation and freeing of
pages. If there is a contiguous stream of allocations then there will be
no regression since the slab allocators will have to go to the page
allocator to get new pages. So the suckiness gets pushed under the carpet.
The SLUB fastpath takes around 40-50 cycles if things align right.
SLAB takes around 80-100 cycles.
The page allocator fastpath takes 342 cycles(!) at its best (Note kernel
compiled for SMP no NUMA!)
It seems that we may increase kernel performance in general if we would
come up with a better fastpath. That would not only improve slub but the
kernel in general.
> > include/linux/slub_def.h | 6 +++---
> > mm/slub.c | 25 +++++++++++++++++--------
>
> I am worrried by a patch which squeezes a few percent out of tbench. Does
> it improve real things? Does anything regress?
It uses an order 3 alloc to get a big allocation unit to be able to stuff
8 4k pages into it. Should improve networking. Howeve an order 3
alloc is considered to be not good by many.
--
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:[~2008-02-10 0:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-09 21:45 SLUB tbench regression due to page allocator deficiency Christoph Lameter
2008-02-09 22:35 ` Andrew Morton
2008-02-10 0:19 ` Christoph Lameter [this message]
2008-02-10 2:45 ` Nick Piggin
2008-02-10 3:36 ` Christoph Lameter
2008-02-10 3:39 ` Christoph Lameter
2008-02-10 23:24 ` Nick Piggin
2008-02-11 19:14 ` Christoph Lameter
2008-02-11 22:03 ` Christoph Lameter
2008-02-11 7:18 ` Nick Piggin
2008-02-11 19:21 ` Christoph Lameter
2008-02-11 23:40 ` Nick Piggin
2008-02-11 23:42 ` Christoph Lameter
2008-02-11 23:56 ` Nick Piggin
2008-02-12 0:08 ` Christoph Lameter
2008-02-12 6:06 ` Fastpath prototype? Christoph Lameter
2008-02-12 10:40 ` Andi Kleen
2008-02-12 20:10 ` Christoph Lameter
2008-02-12 22:31 ` Christoph Lameter
2008-02-13 11:38 ` Andi Kleen
2008-02-13 20:09 ` Christoph Lameter
2008-02-13 18:33 ` SLUB tbench regression due to page allocator deficiency Paul Jackson
2008-02-11 13:50 ` Mel Gorman
2008-02-13 11:15 ` Mel Gorman
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.0802091549120.13328@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
/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;
as well as URLs for NNTP newsgroup(s).