All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Nick Piggin <npiggin@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Oleg Nesterov <oleg@tv-sign.ru>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 0/2] convert mmap_sem to a scalable rw_mutex
Date: Mon, 14 May 2007 14:38:01 +0200	[thread overview]
Message-ID: <1179146281.6810.65.camel@twins> (raw)
In-Reply-To: <20070514115830.GD31234@wotan.suse.de>

On Mon, 2007-05-14 at 13:58 +0200, Nick Piggin wrote:
> On Fri, May 11, 2007 at 05:56:21PM +0200, Ingo Molnar wrote:
> > 
> > * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> > 
> > > I was toying with a scalable rw_mutex and found that it gives ~10% 
> > > reduction in system time on ebizzy runs (without the MADV_FREE patch).
> > > 
> > > 2-way x86_64 pentium D box:
> > > 
> > > 2.6.21
> > > 
> > > /usr/bin/time ./ebizzy -m -P
> > > 59.49user 137.74system 1:49.22elapsed 180%CPU (0avgtext+0avgdata 0maxresident)k
> > > 0inputs+0outputs (0major+33555877minor)pagefaults 0swaps
> > > 
> > > 2.6.21-rw_mutex
> > > 
> > > /usr/bin/time ./ebizzy -m -P
> > > 57.85user 124.30system 1:42.99elapsed 176%CPU (0avgtext+0avgdata 0maxresident)k
> > > 0inputs+0outputs (0major+33555877minor)pagefaults 0swaps
> > 
> > nice! This 6% runtime reduction on a 2-way box will i suspect get 
> > exponentially better on systems with more CPUs/cores.
> 
> Is this with the MADV_DONTNEED kernel and glibc work?

No, just the old stuff.

> 
> > i also like the design, alot: instead of doing a full new lock type 
> > (with per-arch changes, extra lockdep support, etc. etc) you layered the 
> > new abstraction ontop of mutexes. This makes this hard locking 
> > abstraction look really, really simple, while the percpu_counter trick 
> > makes it scale _perfectly_ for the reader case. Congratulations!
> > 
> > given how nice this looks already, have you considered completely 
> > replacing rwsems with this? I suspect you could test the correctness of 
> 
> Not to take anything away from this lock type (because it can have its
> uses), but have you considered the size of this lock and its write side
> performance? 

Yeah, I did, I was initially just toying about with the concept, to see
if it was doable at all. I only posted because I got these fairly good
numbers.


WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Nick Piggin <npiggin@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Oleg Nesterov <oleg@tv-sign.ru>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 0/2] convert mmap_sem to a scalable rw_mutex
Date: Mon, 14 May 2007 14:38:01 +0200	[thread overview]
Message-ID: <1179146281.6810.65.camel@twins> (raw)
In-Reply-To: <20070514115830.GD31234@wotan.suse.de>

On Mon, 2007-05-14 at 13:58 +0200, Nick Piggin wrote:
> On Fri, May 11, 2007 at 05:56:21PM +0200, Ingo Molnar wrote:
> > 
> > * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> > 
> > > I was toying with a scalable rw_mutex and found that it gives ~10% 
> > > reduction in system time on ebizzy runs (without the MADV_FREE patch).
> > > 
> > > 2-way x86_64 pentium D box:
> > > 
> > > 2.6.21
> > > 
> > > /usr/bin/time ./ebizzy -m -P
> > > 59.49user 137.74system 1:49.22elapsed 180%CPU (0avgtext+0avgdata 0maxresident)k
> > > 0inputs+0outputs (0major+33555877minor)pagefaults 0swaps
> > > 
> > > 2.6.21-rw_mutex
> > > 
> > > /usr/bin/time ./ebizzy -m -P
> > > 57.85user 124.30system 1:42.99elapsed 176%CPU (0avgtext+0avgdata 0maxresident)k
> > > 0inputs+0outputs (0major+33555877minor)pagefaults 0swaps
> > 
> > nice! This 6% runtime reduction on a 2-way box will i suspect get 
> > exponentially better on systems with more CPUs/cores.
> 
> Is this with the MADV_DONTNEED kernel and glibc work?

No, just the old stuff.

> 
> > i also like the design, alot: instead of doing a full new lock type 
> > (with per-arch changes, extra lockdep support, etc. etc) you layered the 
> > new abstraction ontop of mutexes. This makes this hard locking 
> > abstraction look really, really simple, while the percpu_counter trick 
> > makes it scale _perfectly_ for the reader case. Congratulations!
> > 
> > given how nice this looks already, have you considered completely 
> > replacing rwsems with this? I suspect you could test the correctness of 
> 
> Not to take anything away from this lock type (because it can have its
> uses), but have you considered the size of this lock and its write side
> performance? 

Yeah, I did, I was initially just toying about with the concept, to see
if it was doable at all. I only posted because I got these fairly good
numbers.

--
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>

  reply	other threads:[~2007-05-14 12:38 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-11 13:15 [PATCH 0/2] convert mmap_sem to a scalable rw_mutex Peter Zijlstra
2007-05-11 13:15 ` Peter Zijlstra
2007-05-11 13:15 ` [PATCH 1/2] " Peter Zijlstra
2007-05-11 13:15   ` Peter Zijlstra
2007-05-11 14:03   ` Christoph Hellwig
2007-05-11 14:03     ` Christoph Hellwig
2007-05-11 16:31   ` Andrew Morton
2007-05-11 16:31     ` Andrew Morton
2007-05-11 17:07     ` Christoph Lameter
2007-05-11 17:07       ` Christoph Lameter
2007-05-11 18:05       ` Andrew Morton
2007-05-11 18:05         ` Andrew Morton
2007-05-12 18:55         ` Andi Kleen
2007-05-12 18:55           ` Andi Kleen
2007-05-12 18:06           ` Andrew Morton
2007-05-12 18:06             ` Andrew Morton
2007-05-12 18:11             ` Andrew Morton
2007-05-12 18:11               ` Andrew Morton
2007-05-16 23:28             ` Andrew Morton
2007-05-16 23:28               ` Andrew Morton
2007-05-16 23:40               ` Christoph Lameter
2007-05-16 23:40                 ` Christoph Lameter
2007-05-17  0:24                 ` Andrew Morton
2007-05-17  0:24                   ` Andrew Morton
2007-05-12 18:12           ` Oleg Nesterov
2007-05-12 18:12             ` Oleg Nesterov
2007-05-12 19:21             ` Andi Kleen
2007-05-12 19:21               ` Andi Kleen
2007-05-12 21:42               ` Oleg Nesterov
2007-05-12 21:42                 ` Oleg Nesterov
2007-05-11 17:57     ` Peter Zijlstra
2007-05-11 17:57       ` Peter Zijlstra
2007-05-11 23:00   ` Oleg Nesterov
2007-05-11 23:00     ` Oleg Nesterov
2007-05-12  7:39     ` Peter Zijlstra
2007-05-12  7:39       ` Peter Zijlstra
2007-05-12 13:41     ` Peter Zijlstra
2007-05-12 13:41       ` Peter Zijlstra
2007-05-12 16:04       ` Oleg Nesterov
2007-05-12 16:04         ` Oleg Nesterov
2007-05-12 16:57         ` Peter Zijlstra
2007-05-12 16:57           ` Peter Zijlstra
2007-05-12 18:03           ` Oleg Nesterov
2007-05-12 18:03             ` Oleg Nesterov
2007-05-14 10:59             ` Peter Zijlstra
2007-05-14 10:59               ` Peter Zijlstra
2007-05-14 11:36               ` Nick Piggin
2007-05-14 11:36                 ` Nick Piggin
2007-05-15  0:36               ` Paul E. McKenney
2007-05-15  0:36                 ` Paul E. McKenney
2007-05-15  7:43                 ` Peter Zijlstra
2007-05-15  7:43                   ` Peter Zijlstra
2007-05-15 15:29                   ` Paul E. McKenney
2007-05-15 15:29                     ` Paul E. McKenney
2007-05-15 16:17                     ` Peter Zijlstra
2007-05-15 16:17                       ` Peter Zijlstra
2007-05-15 18:52                       ` Paul E. McKenney
2007-05-15 18:52                         ` Paul E. McKenney
2007-05-11 13:15 ` [PATCH 2/2] mm: change mmap_sem over to the " Peter Zijlstra
2007-05-11 13:15   ` Peter Zijlstra
2007-05-11 16:17   ` Andrew Morton
2007-05-11 16:17     ` Andrew Morton
2007-05-11 17:12     ` Peter Zijlstra
2007-05-11 17:12       ` Peter Zijlstra
2007-05-11 18:08       ` Andrew Morton
2007-05-11 18:08         ` Andrew Morton
2007-05-14 11:54         ` Nick Piggin
2007-05-14 11:54           ` Nick Piggin
2007-05-11 15:56 ` [PATCH 0/2] convert mmap_sem to a " Ingo Molnar
2007-05-11 15:56   ` Ingo Molnar
2007-05-11 16:52   ` Eric Dumazet
2007-05-11 16:52     ` Eric Dumazet
2007-05-11 17:18     ` Peter Zijlstra
2007-05-11 17:18       ` Peter Zijlstra
2007-05-14 12:07       ` Nick Piggin
2007-05-14 12:07         ` Nick Piggin
2007-05-14 12:57         ` Peter Zijlstra
2007-05-14 12:57           ` Peter Zijlstra
2007-05-11 17:08   ` Christoph Lameter
2007-05-11 17:08     ` Christoph Lameter
2007-05-14 11:58   ` Nick Piggin
2007-05-14 11:58     ` Nick Piggin
2007-05-14 12:38     ` Peter Zijlstra [this message]
2007-05-14 12:38       ` Peter Zijlstra
2007-05-12  9:27 ` Esben Nielsen
2007-05-12  9:27   ` Esben Nielsen
2007-05-12 10:01   ` Peter Zijlstra
2007-05-12 10:01     ` Peter Zijlstra
2007-05-12 13:44     ` Esben Nielsen
2007-05-12 13:44       ` Esben Nielsen
2007-05-12 14:33       ` Ingo Molnar
2007-05-12 14:33         ` Ingo Molnar
2007-05-12 15:34         ` Esben Nielsen
2007-05-12 15:34           ` Esben Nielsen
2007-05-12 15:42           ` Ingo Molnar
2007-05-12 15:42             ` Ingo Molnar
2007-05-12 15:26       ` Eric Dumazet
2007-05-12 15:26         ` Eric Dumazet
2007-05-14  8:50         ` Esben Nielsen

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=1179146281.6810.65.camel@twins \
    --to=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=npiggin@suse.de \
    --cc=oleg@tv-sign.ru \
    --cc=tglx@linutronix.de \
    /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.