All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@cs.helsinki.fi>
To: Christoph Lameter <cl@linux.com>
Cc: David Rientjes <rientjes@google.com>,
	Andi Kleen <andi@firstfloor.org>,
	tj@kernel.org, Metathronius Galabant <m.galabant@googlemail.com>,
	Matt Mackall <mpm@selenic.com>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Adrian Drzewiecki <z@drze.net>,
	linux-kernel@vger.kernel.org
Subject: Re: [slub p2 0/4] SLUB: [RFC] Per cpu partial lists V2
Date: Thu, 07 Jul 2011 22:05:03 +0300	[thread overview]
Message-ID: <1310065503.21902.61.camel@jaguar> (raw)
In-Reply-To: <20110620153244.214038140@linux.com>

On Mon, 2011-06-20 at 10:32 -0500, Christoph Lameter wrote:
> The following patchset applied on top of the lockless patchset V7. It
> introduces per cpu partial lists which allow a performance increase of
> around ~15 during contention for the nodelock (can be tested using
> hackbench).
> 
> These lists help to avoid per nodelocking overhead. Allocator latency
> could be further reduced by making these operations work without
> disabling interrupts (like the fastpath and the free slowpath) as well as
> implementing better ways of handling ther cpu array with partial pages.
> 
> I am still not satisfied with the cleanliness of the code after these
> changes. Some review with suggestions as to how to restructure the
> code given these changes in operations would be appreciated.
> 
> It is interesting to note that BSD has gone to a scheme with partial
> pages only per cpu (source: Adrian). Transfer of cpu ownerships is
> done using IPIs. Probably too much overhead for our taste. The use
> of a few per cpu partial pages looks to be beneficial though.
> 
> Note that there is no performance gain when there is no contention.
> 
> Performance:
> 
> 				Before		After
> ./hackbench 100 process 200000
> 				Time: 2299.072	1742.454
> ./hackbench 100 process 20000
> 				Time: 224.654	182.393
> ./hackbench 100 process 20000
> 				Time: 227.126	182.780
> ./hackbench 100 process 20000
> 				Time: 219.608	182.899
> ./hackbench 10 process 20000
> 				Time: 21.769	18.756
> ./hackbench 10 process 20000
> 				Time: 21.657	18.938
> ./hackbench 10 process 20000
> 				Time: 23.193	19.537
> ./hackbench 1 process 20000
> 				Time: 2.337	2.263
> ./hackbench 1 process 20000
> 				Time: 2.223	2.271
> ./hackbench 1 process 20000
> 				Time: 2.269	2.301

Impressive numbers! David, comments on the series?

			Pekka


      parent reply	other threads:[~2011-07-07 19:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-20 15:32 [slub p2 0/4] SLUB: [RFC] Per cpu partial lists V2 Christoph Lameter
2011-06-20 15:32 ` [slub p2 1/4] slub: Prepare inuse field in new_slab() Christoph Lameter
2011-06-20 15:32 ` [slub p2 2/4] slub: pass kmem_cache_cpu pointer to get_partial() Christoph Lameter
2011-06-20 15:32 ` [slub p2 3/4] slub: return object pointer from get_partial() / new_slab() Christoph Lameter
2011-06-20 15:32 ` [slub p2 4/4] slub: [RFC] per cpu cache for partial pages Christoph Lameter
2011-06-20 19:42 ` [slub p2 0/4] SLUB: [RFC] Per cpu partial lists V2 Andi Kleen
2011-06-20 20:01   ` Christoph Lameter
2011-07-07 19:05 ` Pekka Enberg [this message]

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=1310065503.21902.61.camel@jaguar \
    --to=penberg@cs.helsinki.fi \
    --cc=andi@firstfloor.org \
    --cc=cl@linux.com \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.galabant@googlemail.com \
    --cc=mpm@selenic.com \
    --cc=rientjes@google.com \
    --cc=tj@kernel.org \
    --cc=z@drze.net \
    /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.