From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Ingo Molnar <mingo@elte.hu>
Cc: Christoph Lameter <clameter@sgi.com>,
linux-kernel@vger.kernel.org, linux-mm@vger.kernel.org,
suresh.b.siddha@intel.com, corey.d.gough@intel.com,
Pekka Enberg <penberg@cs.helsinki.fi>,
akpm@linux-foundation.org, Matt Mackall <mpm@selenic.com>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [patch 09/10] Remove the SLOB allocator for 2.6.23
Date: Sun, 08 Jul 2007 20:23:06 +1000 [thread overview]
Message-ID: <4690BB0A.4030801@yahoo.com.au> (raw)
In-Reply-To: <20070708095422.GA2744@elte.hu>
Ingo Molnar wrote:
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>
>>I said exactly the same thing last time this came up. I would love to
>>remove code if its functionality can be adequately replaced by
>>existing code, but I think your reasons for removing SLOB aren't that
>>good, and just handwaving away the significant memory savings doesn't
>>work.
>
>
> yeah. Also, the decision here is pretty easy: the behavior of the
> allocator is not really visible to applications. So this isnt like
> having a parallel IO scheduler or a parallel process scheduler (which
> cause problems to us by fragmenting the application space) - so the
> long-term cost to us kernel maintainers should be relatively low.
Yep.
>>>A year ago the -rt kernel defaulted to the SLOB for a few releases,
>>>and barring some initial scalability issues (which were solved in
>>>-rt) it worked pretty well on generic PCs, so i dont buy the 'it
>>>doesnt work' argument either.
>>
>>It's actually recently been made to work on SMP, it is much more
>>scalable to large memories, and some initial NUMA work is happening
>>that some embedded guys are interested in, all without increasing
>>static footprint too much, and it has actually decreased dynamic
>>footprint too.
>
>
> cool. I was referring to something else: people were running -rt on
> their beefy desktop boxes with several gigs of RAM they complained about
> the slowdown that is caused by SLOB's linear list walking.
That is what I meant by scalable to large memories. It is not perfect,
but it is much better now. I noticed huge slowdowns too when test booting
the slob RCU patch on my 4GB desktop, so I did a few things to improve
freelist walking as well (the patches are in -mm, prefixed with slob-).
Afterwards, performance seems to be fairly good (obviously not as good
as SLAB or SLUB on such a configuration, but definitely usable and the
desktop was not noticably slower).
> Steve Rostedt did two nice changes to fix those scalability problems.
> I've attached Steve's two patches. With these in place SLOB was very
> usable for large systems as well, with no measurable overhead.
> (obviously the lack of per-cpu caching can still be measured, but it's a
> lot less of a problem in practice than the linear list walking was.)
Thanks for sending those. One is actually obsolete because we removed
bigblock list completely, however I had not seen the other one. Such an
approach could be used, OTOH, having all allocations come from the same
pool does have its advantages in terms of memory usage.
I don't think it has been quite decided on the next step to take with
SLOB, however I have an idea that if we had per-cpu freelists (where
other lists could be used as a fallback), then that would go a long way
to improving the SMP scalability, CPU cache hotness, and long list
walking issues all at once.
However I like the fact that there is no need for a big rush to improve
it, and so patches and ideas can be brewed up slowly :)
Thanks,
Nick
--
SUSE Labs, Novell Inc.
next prev parent reply other threads:[~2007-07-08 10:23 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-08 3:49 [patch 00/10] [RFC] SLUB patches for more functionality, performance and maintenance Christoph Lameter
2007-07-08 3:49 ` [patch 01/10] SLUB: Direct pass through of page size or higher kmalloc requests Christoph Lameter
2007-07-08 3:49 ` [patch 02/10] SLUB: Avoid page struct cacheline bouncing due to remote frees to cpu slab Christoph Lameter
2007-07-08 3:49 ` [patch 03/10] SLUB: Do not use page->mapping Christoph Lameter
2007-07-08 3:49 ` [patch 04/10] SLUB: Move page->offset to kmem_cache_cpu->offset Christoph Lameter
2007-07-08 3:49 ` [patch 05/10] SLUB: Avoid touching page struct when freeing to per cpu slab Christoph Lameter
2007-07-08 3:49 ` [patch 06/10] SLUB: Place kmem_cache_cpu structures in a NUMA aware way Christoph Lameter
2007-07-08 3:49 ` [patch 07/10] SLUB: Optimize cacheline use for zeroing Christoph Lameter
2007-07-08 3:50 ` [patch 08/10] SLUB: Single atomic instruction alloc/free using cmpxchg Christoph Lameter
2007-07-08 3:50 ` [patch 09/10] Remove the SLOB allocator for 2.6.23 Christoph Lameter
2007-07-08 7:51 ` Ingo Molnar
2007-07-08 9:43 ` Nick Piggin
2007-07-08 9:54 ` Ingo Molnar
2007-07-08 10:23 ` Nick Piggin [this message]
2007-07-08 10:42 ` Ingo Molnar
2007-07-08 18:02 ` Andrew Morton
2007-07-09 2:57 ` Nick Piggin
2007-07-09 11:04 ` Pekka Enberg
2007-07-09 11:16 ` Nick Piggin
2007-07-09 12:47 ` Pekka Enberg
2007-07-09 13:46 ` Pekka J Enberg
2007-07-09 16:08 ` Christoph Lameter
2007-07-09 16:08 ` Christoph Lameter
2007-07-10 8:17 ` Pekka J Enberg
2007-07-10 8:17 ` Pekka J Enberg
2007-07-10 8:27 ` Nick Piggin
2007-07-10 8:27 ` Nick Piggin
2007-07-10 9:31 ` Pekka Enberg
2007-07-10 9:31 ` Pekka Enberg
2007-07-10 10:09 ` Nick Piggin
2007-07-10 10:09 ` Nick Piggin
2007-07-10 12:02 ` Matt Mackall
2007-07-10 12:02 ` Matt Mackall
2007-07-10 12:57 ` Pekka J Enberg
2007-07-10 12:57 ` Pekka J Enberg
2007-07-10 22:12 ` Christoph Lameter
2007-07-10 22:40 ` Matt Mackall
2007-07-10 22:40 ` Matt Mackall
2007-07-10 22:50 ` Christoph Lameter
2007-07-10 22:50 ` Christoph Lameter
2007-07-09 16:06 ` Christoph Lameter
2007-07-09 16:51 ` Andrew Morton
2007-07-09 17:26 ` Christoph Lameter
2007-07-09 18:00 ` Andrew Morton
2007-07-10 1:43 ` Nick Piggin
2007-07-10 1:56 ` Christoph Lameter
2007-07-10 2:02 ` Nick Piggin
2007-07-10 2:11 ` Christoph Lameter
2007-07-10 7:09 ` Nick Piggin
2007-07-10 22:09 ` Christoph Lameter
2007-07-10 23:12 ` Matt Mackall
2007-07-10 8:32 ` Matt Mackall
2007-07-10 9:01 ` Håvard Skinnemoen
2007-07-10 9:11 ` Nick Piggin
2007-07-10 9:21 ` Håvard Skinnemoen
2007-07-11 1:37 ` Christoph Lameter
2007-07-11 2:06 ` Matt Mackall
2007-07-11 18:06 ` Christoph Lameter
2007-07-11 18:25 ` Pekka J Enberg
2007-07-11 18:33 ` Christoph Lameter
2007-07-11 18:36 ` Pekka J Enberg
2007-07-12 0:33 ` Nick Piggin
2007-07-09 23:09 ` Matt Mackall
2007-07-10 1:41 ` Nick Piggin
2007-07-10 1:51 ` Christoph Lameter
2007-07-10 1:58 ` Nick Piggin
2007-07-10 6:22 ` Matt Mackall
2007-07-10 7:03 ` Nick Piggin
2007-07-10 2:32 ` Matt Mackall
2007-07-09 21:57 ` Matt Mackall
2007-07-09 12:31 ` Matthieu CASTET
2007-07-09 16:00 ` Christoph Lameter
2007-07-09 20:52 ` Matt Mackall
2007-07-08 3:50 ` [patch 10/10] Remove slab in 2.6.24 Christoph Lameter
2007-07-08 4:37 ` [patch 00/10] [RFC] SLUB patches for more functionality, performance and maintenance David Miller
2007-07-09 15:45 ` Christoph Lameter
2007-07-09 19:43 ` David Miller
2007-07-09 21:21 ` Christoph Lameter
2007-07-08 11:20 ` Andi Kleen
2007-07-09 15:50 ` Christoph Lameter
2007-07-09 15:50 ` Christoph Lameter
2007-07-09 15:59 ` Martin Bligh
2007-07-09 15:59 ` Martin Bligh
2007-07-09 18:11 ` Christoph Lameter
2007-07-09 18:11 ` Christoph Lameter
2007-07-09 21:00 ` Martin Bligh
2007-07-09 21:00 ` Martin Bligh
2007-07-09 21:44 ` Mathieu Desnoyers
2007-07-09 21:44 ` Mathieu Desnoyers
2007-07-09 21:55 ` Christoph Lameter
2007-07-09 21:55 ` Christoph Lameter
2007-07-09 22:58 ` Mathieu Desnoyers
2007-07-09 22:58 ` Mathieu Desnoyers
2007-07-09 23:08 ` Christoph Lameter
2007-07-09 23:08 ` Christoph Lameter
2007-07-10 5:16 ` [PATCH] x86_64 - Use non locked version for local_cmpxchg() Mathieu Desnoyers
2007-07-10 5:16 ` Mathieu Desnoyers
2007-07-10 20:46 ` Christoph Lameter
2007-07-10 20:46 ` Christoph Lameter
2007-07-10 0:55 ` [patch 00/10] [RFC] SLUB patches for more functionality, performance and maintenance Christoph Lameter
2007-07-10 0:55 ` Christoph Lameter
2007-07-10 8:27 ` Mathieu Desnoyers
2007-07-10 8:27 ` Mathieu Desnoyers
2007-07-10 18:38 ` Christoph Lameter
2007-07-10 18:38 ` Christoph Lameter
2007-07-10 20:59 ` Mathieu Desnoyers
2007-07-10 20:59 ` Mathieu Desnoyers
2007-08-13 22:18 ` Mathieu Desnoyers
2007-08-13 22:18 ` Mathieu Desnoyers
2007-08-13 22:28 ` Christoph Lameter
2007-08-13 22:28 ` Christoph Lameter
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=4690BB0A.4030801@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=corey.d.gough@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mpm@selenic.com \
--cc=penberg@cs.helsinki.fi \
--cc=rostedt@goodmis.org \
--cc=suresh.b.siddha@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.