From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: David Rientjes <rientjes@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Matt Mackall <mpm@selenic.com>,
Pekka Enberg <penberg@cs.helsinki.fi>,
linux-mm@kvack.org, Christoph Lameter <cl@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
Nick Piggin <npiggin@suse.de>
Subject: Re: lockdep complaints in slab allocator
Date: Tue, 24 Nov 2009 14:23:51 -0800 [thread overview]
Message-ID: <20091124222351.GL6831@linux.vnet.ibm.com> (raw)
In-Reply-To: <alpine.DEB.2.00.0911241336550.12339@chino.kir.corp.google.com>
On Tue, Nov 24, 2009 at 01:46:34PM -0800, David Rientjes wrote:
> On Tue, 24 Nov 2009, Peter Zijlstra wrote:
>
> > We should cull something, just merging more and more of them is useless
> > and wastes everybody's time since you have to add features and
> > interfaces to all of them.
>
> I agree, but it's difficult to get widespread testing or development
> interest in an allocator that is sitting outside of mainline. I don't
> think any allocator could suddenly be merged as the kernel default, it
> seems like a prerequisite to go through the preliminary merging and
> development. The severe netperf TCP_RR regression that slub has compared
> to slab was never found before it became the default allocator, otherwise
> there would probably have been more effort into its development as well.
> Unfortunately, slub's design is such that it will probably never be able
> to nullify the partial slab thrashing enough, even with the percpu counter
> speedup that is now available because of Christoph's work, to make TCP_RR
> perform as well as slab.
OK. I threatened this over IRC, and I never make threats that I am not
prepared to carry out.
I therefore propose creating a staging area for memory allocators,
similar to the one for device drivers. Have it in place for allocators
both coming and going.
> > Then maybe we should toss SLUB? But then there's people who say SLUB is
> > better for them. Without forcing something to happen we'll be stuck with
> > multiple allocators forever.
>
> Slub is definitely superior in diagnostics and is a much simpler design
> than slab. I think it would be much easier to remove slub than slab,
> though, simply because there are no great slab performance degradations
> compared to slub. I think the best candidate for removal might be slob,
> however, because it hasn't been compared to slub and usage may not be as
> widespread as expected for such a special case allocator.
And yes, the real problem is that each allocator has its advocates.
I would actually not be all that worried about a proliferation of
allocators if they were automatically selected based on machine
configuration, expected workload, or some such. But the fact is
that while 5% is a life-or-death matter to benchmarkers, it is of no
consequence to the typical Linux user/workload.
The concern with simpler allocators is that making them competitive
across the board with SLAB will make them just as complex as SLAB is.
As long as CONFIG_EMBEDDED remains a euphemism for "don't use me", SLOB
will not see much use or testing outside of those people who care
passionately about memory footprint. SLQB probably doesn't make it into
mainline until either Nick gets done with his VFS scalability work or
someone else starts pushing it. Allocator proliferation continues as
long as allocators are perceived to be easy to write. And so on...
As for me, as long as SLAB is in the kernel and is default for some
of the machines I use for testing, I will continue reporting any bugs
I find in it. ;-)
Thanx, Paul
--
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:[~2009-11-24 22:23 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-18 18:12 Paul E. McKenney
2009-11-20 6:49 ` Pekka Enberg
2009-11-20 9:25 ` Peter Zijlstra
2009-11-20 10:38 ` Pekka Enberg
2009-11-20 10:52 ` Peter Zijlstra
2009-11-20 11:05 ` Pekka Enberg
2009-11-20 14:48 ` Paul E. McKenney
2009-11-20 15:17 ` Peter Zijlstra
2009-11-20 16:25 ` Paul E. McKenney
2009-11-20 15:09 ` Peter Zijlstra
2009-11-23 19:00 ` Pekka Enberg
2009-11-23 19:10 ` Matt Mackall
2009-11-23 19:13 ` Pekka Enberg
2009-11-24 16:33 ` Peter Zijlstra
2009-11-24 17:00 ` Paul E. McKenney
2009-11-24 17:12 ` Matt Mackall
2009-11-24 17:58 ` Paul E. McKenney
2009-11-24 18:14 ` Peter Zijlstra
2009-11-24 18:25 ` Paul E. McKenney
2009-11-24 18:31 ` Peter Zijlstra
2009-11-24 18:53 ` Christoph Lameter
2009-11-24 18:54 ` Paul E. McKenney
2009-11-24 19:23 ` Matt Mackall
2009-11-24 19:50 ` Paul E. McKenney
2009-11-24 20:46 ` Peter Zijlstra
2009-11-24 20:53 ` Matt Mackall
2009-11-24 21:01 ` Peter Zijlstra
2009-11-24 21:03 ` David Rientjes
2009-11-24 21:12 ` Peter Zijlstra
2009-11-24 21:19 ` Pekka Enberg
2009-11-24 21:22 ` David Rientjes
2009-11-24 21:35 ` Peter Zijlstra
2009-11-24 21:46 ` David Rientjes
2009-11-24 22:23 ` Paul E. McKenney [this message]
2009-11-25 7:12 ` Pekka Enberg
2009-11-25 7:25 ` Pekka Enberg
2009-11-27 17:22 ` Christoph Lameter
2009-11-24 21:48 ` Paul E. McKenney
2009-11-24 21:16 ` Pekka Enberg
2009-11-24 21:07 ` Pekka Enberg
2009-11-24 22:55 ` Matt Mackall
2009-11-25 21:59 ` David Rientjes
2009-11-25 23:06 ` Matt Mackall
2009-11-27 17:28 ` Christoph Lameter
2009-11-30 23:14 ` David Rientjes
2009-12-01 0:21 ` Matt Mackall
2009-12-01 22:41 ` David Rientjes
2009-12-01 16:47 ` Christoph Lameter
2009-11-27 17:26 ` Christoph Lameter
2009-11-23 19:30 ` Christoph Lameter
2009-11-23 19:43 ` Paul E. McKenney
2009-11-23 19:50 ` Pekka Enberg
2009-11-23 20:01 ` Pekka Enberg
2009-11-23 20:57 ` Paul E. McKenney
2009-11-23 21:01 ` Matt Mackall
2009-11-24 16:23 ` Paul E. McKenney
2009-11-24 20:59 ` Pekka Enberg
2009-11-24 21:26 ` Peter Zijlstra
2009-11-25 10:42 ` Pekka Enberg
2009-11-24 21:47 ` Paul E. McKenney
2009-11-30 16:18 ` Paul E. McKenney
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=20091124222351.GL6831@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=cl@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mpm@selenic.com \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
--cc=peterz@infradead.org \
--cc=rientjes@google.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