linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <cl@linux.com>
To: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	hughd@google.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [GIT PULL] Lockless SLUB slowpaths for v3.1-rc1
Date: Mon, 1 Aug 2011 10:55:40 -0500 (CDT)	[thread overview]
Message-ID: <alpine.DEB.2.00.1108011046230.8420@router.home> (raw)
In-Reply-To: <CAOJsxLHB9jPNyU2qztbEHG4AZWjauCLkwUVYr--8PuBBg1=MCA@mail.gmail.com>


The future plans that I have for performance improvements are:

1. The percpu partial lists.

The min_partial settings are halved by this approach so that there wont be
any excessive memory usage. Pages on per cpu partial lists are frozen and
this means that the __slab_free path can avoid taking node locks for a
page that is cached by another processor. This causes another significant
performance gain in hackbench of up to 20%. The problem here is to fine
tune the approach and clean up the patchset.

2. per cpu full lists.

These will not be specific to a particular slab cache but shared amoung
all of them. This will reduce the need to keep empty slab pages on the
per node partial lists and therefore also reduce memory consumption.

The per cpu full lists will be essentially a caching layer for the
page allocator and will make slab acquisition and release as fast
as the slub fastpath for alloc and free (it uses the same
this_cpu_cmpxchg_double based approach). I basically gave up on
fixing up the page allocator fastpath after trying various approaches
over the last weeks. Maybe the caching layer can be made available
for other kernel subsystems that need fast page access too.

The scaling issues that are left over are then those caused by

1. The per node lock taken for the partial lists per node.
   This can be controlled by enlarging the per cpu partial lists.

2. The necessity to go to the page allocator.
   This will be tunable by configuring the caching layer.

3. Bouncing cachelines for __remote_free if multiple processors
   enter __slab_free for the same page.




--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-08-01 15:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-28 22:47 Pekka Enberg
2011-07-29 15:04 ` Christoph Lameter
2011-07-29 23:18   ` Andi Kleen
2011-07-30  6:33     ` Eric Dumazet
2011-07-31 18:50   ` David Rientjes
2011-07-31 20:24     ` David Rientjes
2011-07-31 20:45       ` Pekka Enberg
2011-07-31 21:55         ` David Rientjes
2011-08-01  5:08           ` Pekka Enberg
2011-08-01 10:02             ` David Rientjes
2011-08-01 12:45               ` Pekka Enberg
2011-08-02  2:43                 ` David Rientjes
2011-08-01 12:06           ` Pekka Enberg
2011-08-01 15:55             ` Christoph Lameter [this message]
2011-08-02  4:05             ` David Rientjes
2011-08-02 14:15               ` Christoph Lameter
2011-08-02 16:24                 ` David Rientjes
2011-08-02 16:36                   ` Christoph Lameter
2011-08-02 20:02                     ` David Rientjes
2011-08-03 14:09                       ` Christoph Lameter
2011-08-08 20:04                         ` David Rientjes
2011-07-30 18:27 ` Linus Torvalds
2011-07-30 18:32   ` Linus Torvalds
2011-07-31 17:39     ` Andi Kleen
2011-08-01  0:22       ` KAMEZAWA Hiroyuki
2011-07-31 18:11     ` David Rientjes

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=alpine.DEB.2.00.1108011046230.8420@router.home \
    --to=cl@linux.com \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.com \
    --cc=torvalds@linux-foundation.org \
    /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