All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Michel Lespinasse <walken@google.com>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 1/4] mm/rmap: per anon_vma lock
Date: Fri, 1 Nov 2013 19:44:29 +0800	[thread overview]
Message-ID: <20131101114429.GD30123@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <20131101101514.GD19466@laptop.lan>

On Fri, Nov 01, 2013 at 11:15:14AM +0100, Peter Zijlstra wrote:
> On Fri, Nov 01, 2013 at 06:07:07PM +0800, Yuanhan Liu wrote:
> > > I also want to point out that lately we've seen several changes sent
> > > out that relax locking with no accompanying explanation of why the
> > > relaxed locking would be safe. Please don't do that - having a lot of
> > > performance data is worthless if you can't explain why the new locking
> > > is safe.
> > 
> > Agreed.
> > 
> > > And I'm not asking to prove a negative ('lack of any possible
> > > races') there, but at least in this case one could dig out why the
> > > root anon vma locking was introduced and if they think that this
> > > reason doesn't apply anymore, explain why...
> > 
> > It was introduced by commit 2b575eb6(And, BTW, I'm sorry that this commit log
> > about bb4aa39676f is wrong)
> > 
> >    commit 2b575eb64f7a9c701fb4bfdb12388ac547f6c2b6
> >    Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
> >    Date:   Tue May 24 17:12:11 2011 -0700
> >    
> >        mm: convert anon_vma->lock to a mutex
> >    
> >        Straightforward conversion of anon_vma->lock to a mutex.
> >    
> > As you can see, Peter didn't tell why before. Honestly speaking, that
> > was my originaly concern as well. I tried to find some possible races;
> > I guess I may miss something.
> 
> Bullshit; I didn't change the locking. I only changed the lock primitive
> from a spinlock to a mutex. The anon_vma->root->lock is completely
> unrelated to this change.

Oops, sorry for that. Just made a *horrible* mistake: it was commit
012f18004da33ba672e3c60838cc4898126174d3.


commit 012f18004da33ba672e3c60838cc4898126174d3
Author: Rik van Riel <riel@redhat.com>
Date:   Mon Aug 9 17:18:40 2010 -0700

    mm: always lock the root (oldest) anon_vma

    Always (and only) lock the root (oldest) anon_vma whenever we do something
    in an anon_vma.  The recently introduced anon_vma scalability is due to
    the rmap code scanning only the VMAs that need to be scanned.  Many common
    operations still took the anon_vma lock on the root anon_vma, so always
    taking that lock is not expected to introduce any scalability issues.

    However, always taking the same lock does mean we only need to take one
    lock, which means rmap_walk on pages from any anon_vma in the vma is
    excluded from occurring during an munmap, expand_stack or other operation
    that needs to exclude rmap_walk and similar functions.

    Also add the proper locking to vma_adjust.

    Signed-off-by: Rik van Riel <riel@redhat.com>
    Tested-by: Larry Woodman <lwoodman@redhat.com>
    Acked-by: Larry Woodman <lwoodman@redhat.com>
    Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
    Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Acked-by: Mel Gorman <mel@csn.ul.ie>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>



  reply	other threads:[~2013-11-01 11:44 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-01  7:54 [PATCH 0/4] per anon_vma lock and turn anon_vma rwsem lock to rwlock_t Yuanhan Liu
2013-11-01  7:54 ` [PATCH 1/4] mm/rmap: per anon_vma lock Yuanhan Liu
2013-11-01  8:43   ` Peter Zijlstra
2013-11-01  9:22     ` Michel Lespinasse
2013-11-01  9:29       ` Ingo Molnar
2013-11-01 10:07       ` Yuanhan Liu
2013-11-01 10:15         ` Peter Zijlstra
2013-11-01 11:44           ` Yuanhan Liu [this message]
2013-11-01 12:07             ` Peter Zijlstra
2013-11-01 14:02               ` Yuanhan Liu
2013-11-01  9:38     ` Yuanhan Liu
2013-11-01 10:22       ` Peter Zijlstra
2013-11-01 14:09         ` Yuanhan Liu
2013-11-01 17:47           ` Linus Torvalds
2013-11-01  7:54 ` [PATCH 2/4] mm/rmap: convert anon_vma rwsem to rwlock_t Yuanhan Liu
2013-11-01  8:46   ` Peter Zijlstra
2013-11-01  7:54 ` [PATCH 3/4] mm/rmap: cleanup unnecessary code Yuanhan Liu
2013-11-01  7:54 ` [PATCH 4/4] mm/rmap.c: move anon_vma initialization code into anon_vma_ctor Yuanhan Liu
2013-11-01 18:04   ` Linus Torvalds
2013-11-04  3:37     ` Yuanhan Liu
2013-11-01  8:01 ` [PATCH 0/4] per anon_vma lock and turn anon_vma rwsem lock to rwlock_t Ingo Molnar
2013-11-01  8:11   ` Yuanhan Liu
2013-11-01  8:21     ` Ingo Molnar
2013-11-01 10:16       ` Yuanhan Liu
2013-11-02  3:15         ` Davidlohr Bueso
2013-11-04  3:59           ` Yuanhan Liu
2013-11-05  1:44             ` Tim Chen
2013-11-05  2:03               ` Tim Chen
2013-11-05  3:41                 ` Yuanhan Liu
2013-11-05  3:10               ` Yuanhan Liu
2013-11-05 14:43                 ` Yuanhan Liu
2013-11-01 17:49   ` Davidlohr Bueso
2013-11-01 18:09     ` Linus Torvalds
2013-11-01 18:47       ` Michel Lespinasse
2013-11-01 18:55         ` Linus Torvalds
2013-11-02  3:18           ` Davidlohr Bueso
2013-11-01 19:01 ` KOSAKI Motohiro

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=20131101114429.GD30123@yliu-dev.sh.intel.com \
    --to=yuanhan.liu@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=walken@google.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.