linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Nick Piggin <npiggin@suse.de>
Cc: Al Viro <viro@ZenIV.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 04/33] fs: brlock vfsmount_lock
Date: Mon, 28 Sep 2009 15:21:03 +0200	[thread overview]
Message-ID: <1254144063.15795.3.camel@laptop> (raw)
In-Reply-To: <20090927195619.GG6327@wotan.suse.de>

On Sun, 2009-09-27 at 21:56 +0200, Nick Piggin wrote:
> On Tue, Sep 22, 2009 at 04:17:51PM +0100, Al Viro wrote:
> > On Fri, Sep 04, 2009 at 04:51:45PM +1000, npiggin@suse.de wrote:
> > > Use a brlock for the vfsmount lock.
> > 
> > I like it, but I'd like to see how costly it becomes on heavily SMP boxen.
> > Creation/removal of bindings as load...
> 
> I could test that... Is there some realistic scenario I can try
> to implement that exercises this? (failing that, I'll happily
> do a microbenchmark).
> 
> I was thinking it *might* be possible to do RCU... but especially
> coming up with a scheme that avoids synchronize_rcu() in the
> umount path is not trivial, so perhaps the simple read/write
> annotations with brlock behind the scenes is a more reasonable step.
> 
> I do also actually owe you some documentation with this one too,
> which I will get around to adding.

The thing that worries me is that the write-side is very heavy and the
read sides are spinning on it, yielding rather large spin times on large
smp boxen.

It wouldn't nearly be as bad if the read sides could block..

FWIW, spin_lock_nested is limited to 8 subclasses, so your current
implementation will explode on anything larger than an 8-way.


  reply	other threads:[~2009-09-28 13:20 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-04  6:51 [patch 00/33] my current vfs scalability patch queue npiggin
2009-09-04  6:51 ` [patch 01/33] fs: no games with DCACHE_UNHASHED npiggin
2009-09-04  6:51 ` [patch 02/33] fs: cleanup files_lock npiggin
2009-09-04  6:51 ` [patch 03/33] fs: scale files_lock npiggin
2009-09-28 13:22   ` Peter Zijlstra
2009-09-28 13:24   ` Peter Zijlstra
2009-10-01  2:16     ` Nick Piggin
     [not found]       ` <r2i3282373b1004011751j440635b3n484018db2e2bc50c@mail.gmail.com>
2010-04-02  2:24         ` [patch 1/2] fs: cleanup files_lock tim
2009-09-04  6:51 ` [patch 04/33] fs: brlock vfsmount_lock npiggin
2009-09-04 15:19   ` Jens Axboe
2009-09-07  7:39     ` Nick Piggin
2009-09-22 15:17   ` Al Viro
2009-09-27 19:56     ` Nick Piggin
2009-09-28 13:21       ` Peter Zijlstra [this message]
2009-10-01  2:10         ` Nick Piggin
2009-09-04  6:51 ` [patch 05/33] fs: scale mntget/mntput npiggin
2009-09-07  9:41   ` Nick Piggin
2009-09-04  6:51 ` [patch 06/33] fs: dcache scale hash npiggin
2009-09-04  6:51 ` [patch 07/33] fs: dcache scale lru npiggin
2009-09-04  6:51 ` [patch 08/33] fs: dcache scale nr_dentry npiggin
2009-09-04 14:41   ` Daniel Walker
2009-09-07  7:36     ` Nick Piggin
2009-09-04  6:51 ` [patch 09/33] fs: dcache scale dentry refcount npiggin
2009-09-06 18:01   ` Eric Paris
2009-09-07  7:44     ` Nick Piggin
2009-09-07 11:21       ` Eric Paris
2009-09-07 11:35         ` Nick Piggin
2009-09-04  6:51 ` [patch 10/33] fs: dcache scale d_unhashed npiggin
2009-09-04  6:51 ` [patch 11/33] fs: dcache scale subdirs npiggin
2010-06-17 15:13   ` Peter Zijlstra
2010-06-17 16:53     ` Nick Piggin
2010-06-21 13:35       ` Peter Zijlstra
2010-06-21 14:48         ` Nick Piggin
2010-06-21 14:55           ` Peter Zijlstra
2010-06-22  6:02             ` john stultz
2010-06-22  6:06               ` Nick Piggin
2010-06-22  7:27               ` Peter Zijlstra
2010-06-23  2:03                 ` john stultz
2010-06-23  7:23                   ` Peter Zijlstra
2009-09-04  6:51 ` [patch 12/33] fs: scale inode alias list npiggin
2009-09-04  6:51 ` [patch 13/33] fs: use RCU / seqlock logic for reverse and multi-step operaitons npiggin
2009-09-04  6:51 ` [patch 14/33] fs: dcache remove dcache_lock npiggin
2009-09-04  6:51 ` [patch 15/33] fs: dcache reduce dput locking npiggin
2009-09-04  6:51 ` [patch 16/33] fs: dcache per-bucket dcache hash locking npiggin
2009-09-04 14:51   ` Daniel Walker
2009-09-07  7:38     ` Nick Piggin
2009-09-04  6:51 ` [patch 17/33] fs: dcache reduce dcache_inode_lock npiggin
2009-09-04  6:51 ` [patch 18/33] fs: dcache per-inode inode alias locking npiggin
2009-09-04  6:52 ` [patch 19/33] fs: icache lock s_inodes list npiggin
2009-09-04  6:52 ` [patch 20/33] fs: icache lock inode hash npiggin
2009-09-04  6:52 ` [patch 21/33] fs: icache lock i_state npiggin
2009-09-04  6:52 ` [patch 22/33] fs: icache lock i_count npiggin
2009-09-04  6:52 ` [patch 23/33] fs: icache atomic inodes_stat npiggin
2009-09-04  6:52 ` [patch 24/33] fs: icache lock lru/writeback lists npiggin
2009-09-04  6:52 ` [patch 25/33] fs: icache protect inode state npiggin
2009-09-04  6:52 ` [patch 26/33] fs: inode atomic last_ino, iunique lock npiggin
2009-09-04  6:52 ` [patch 27/33] fs: icache remove inode_lock npiggin
2009-09-04  6:52 ` [patch 28/33] fs: inode factor hash lock into functions npiggin
2009-09-04  6:52 ` [patch 29/33] Remove the global inode_hash_lock and replace it with per-hash-bucket locks. fs: inode per-bucket inode hash locks npiggin
2009-09-04  7:05   ` Nick Piggin
2009-09-04  6:52 ` [patch 30/33] fs: inode lazy lru npiggin
2009-09-04  6:52 ` [patch 31/33] fs: RCU free inodes npiggin
2009-09-04  6:52 ` [patch 32/33] fs: rcu walk for i_sb_list npiggin
2009-09-04  6:52 ` [patch 33/33] fs: improve scalability of pseudo filesystems npiggin
2009-09-04  7:05 ` [patch 00/33] my current vfs scalability patch queue Nick Piggin

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=1254144063.15795.3.camel@laptop \
    --to=peterz@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@suse.de \
    --cc=viro@ZenIV.linux.org.uk \
    /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;
as well as URLs for NNTP newsgroup(s).