From: Peter Zijlstra <peterz@infradead.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org, apw@shadowen.org
Subject: Re: [patch 0/5] [RFC] Conversion of reverse map locks to semaphores
Date: Fri, 27 Jun 2008 10:53:09 +0200 [thread overview]
Message-ID: <1214556789.2801.19.camel@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20080626003632.049547282@sgi.com>
On Wed, 2008-06-25 at 17:36 -0700, Christoph Lameter wrote:
> (This is going to be the last patchset that I post from clameter@sgi.com.
> Please use cl@linux-foundation.org in the future.)
Congratulations on the new job I suppose.. :-)
> Having semaphores there instead of spinlocks is useful since it
> allows sleeping in various code paths. That sleeping is useful
> if one wants to implement callbacks to remove external mapping
> (like done in the mmu notifier).
>
> Also it seems that a semaphore helps RT and should avoid busy spinning
> on systems where these locks experience significant contention.
Please be careful with the wording here. Semaphores are evil esp for RT.
But luckily you're referring to a sleeping RW lock, which we call
RW-semaphore (but is not an actual semaphore).
You really scared some people saying this ;-)
> The first patches move tlb flushing around in such a way that
> the _lock's can always be taken in preemptible contexts.
>
> The i_mmap_sem used to be present until someone switched it to a spinlock in
> 2004 due to scaling concerns on NUMA with a benchmark called SDET. I was not
> able to locate that benchmark (but Andi Whitcroft has access and promised me
> some results).
>
> AIM9 results (3 samples) anon_vma conversion not applied:
>
> 5 exec_test 1048.95 1025.50 -23.45 -2.24% Program Loads/second
> 6 fork_test 4775.22 4945.16 169.94 3.56% Task Creations/second
>
> 5 exec_test 1057.00 1019.00 -38.00 -3.60% Program Loads/second
> 6 fork_test 4930.14 4760.00 -170.14 -3.45% Task Creations/second
>
> 5 exec_test 1047.50 1038.96 -8.54 -0.82% Program Loads/second
> 6 fork_test 4760.48 4925.07 164.59 3.46% Task Creations/second
>
> Loads per second seem to have down tendency. Task creations are up. Not sure
> how much jitter gets into it.
>
> The old page fault performance test on file backed pages
> (anon_vma conversion not applied, 250k per process):
>
> Before:
> Gb Rep Thr CLine User System Wall flt/cpu/s fault/wsec
> 0 3 1 1 0.00s 0.08s 0.00s261555.860 246536.848
> 0 3 2 1 0.00s 0.09s 0.00s219709.015 357800.362
> 0 3 4 1 0.19s 0.13s 0.01s 67810.629 218846.742
> 0 3 8 1 1.04s 0.21s 0.02s 17548.427 104461.093
>
> After:
> Gb Rep Thr CLine User System Wall flt/cpu/s fault/wsec
> 0 3 1 1 0.00s 0.09s 0.00s238813.108 243323.477
> 0 3 2 1 0.00s 0.10s 0.00s219706.818 354671.772
> 0 3 4 1 0.20s 0.13s 0.00s 64619.728 225528.586
> 0 3 8 1 1.09s 0.22s 0.02s 16644.421 101027.423
>
> A slight performance degradation in most regimes, just 4 processors
> is a bright spot.
Would you have any lockstat output for these locks?
Depending on the contention stats you could try an adaptive spin on the
readers. I doubt adaptive spins on the writer would work out well, with
the natural plenty-ness of readers..
--
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-06-27 8:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-26 0:36 [patch 0/5] [RFC] Conversion of reverse map locks to semaphores Christoph Lameter
2008-06-26 0:36 ` [patch 1/5] Move tlb handling into free_pgtables() Christoph Lameter
2008-06-26 0:36 ` [patch 2/5] Move tlb flushing inside of unmap vmas Christoph Lameter
2008-06-26 0:36 ` [patch 3/5] Add capability to check if rwsems are contended Christoph Lameter
2008-06-26 0:36 ` [patch 4/5] Convert i_mmap_lock to a rw semaphore Christoph Lameter
2008-06-26 0:36 ` [patch 5/5] Convert anon_vma spinlock to " Christoph Lameter
2008-06-26 1:05 ` Andrea Arcangeli
2008-06-26 17:23 ` Christoph Lameter
2008-06-26 17:27 ` Andrea Arcangeli
2008-06-26 0:53 ` [patch 0/5] [RFC] Conversion of reverse map locks to semaphores Andrea Arcangeli
2008-06-26 17:19 ` Christoph Lameter
2008-06-27 8:53 ` Peter Zijlstra [this message]
2008-06-27 15:46 ` Christoph Lameter
2008-06-27 16:38 ` Peter Zijlstra
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=1214556789.2801.19.camel@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=apw@shadowen.org \
--cc=clameter@sgi.com \
--cc=linux-mm@kvack.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 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.