Messages in this thread Patch in this message |  | | | Subject | Re: Nick's vfs-scalability patches ported to 2.6.33-rt | | From | john stultz <> | | Date | Wed, 03 Mar 2010 15:31:30 -0800 |
| |
On Fri, 2010-02-26 at 17:01 +1100, Nick Piggin wrote: > On Thu, Feb 25, 2010 at 09:53:28PM -0800, john stultz wrote: > > Hey Thomas, Nick, > > I just wanted to let you know I've just finished forward porting Nick's > > patches to 2.6.33-rc8-rt2. Luckily my forward port of Nick's patches to > > 2.6.33 applies on top of the -rt tree without any collisions, and I've > > added a handful of maybe sketchy fixups to get it working with -rt. > > > > You can find the patchset here: > > http://sr71.net/~jstultz/dbench-scalability/patches/2.6.33-rc8-rt2/vfs-scale.33-rt.tar.bz2 > > > > Here's a chart showing how much these patches help dbench numbers on > > ramfs: > > http://sr71.net/~jstultz/dbench-scalability/graphs/2.6.33/ramfs-dbench.png > > > > I've not done any serious stress testing with the patchset yet, but > > wanted to post it for your review. > > > > Nick: I'd appreciate any feedback as to if any of my forward porting has > > gone awry. I'm still very green with respect to the vfs, so I don't > > doubt there are some issues hiding here. > > BTW there are a few issues Al pointed out. We have to synchronize RCU > after unregistering a filesystem so d_ops/i_ops doesn't go away, and > mntput can sleep so we can't do it under RCU read lock.
Does the following address this issue properly?
Signed-off-by: John Stultz <johnstul@us.ibm.com>
diff --git a/fs/filesystems.c b/fs/filesystems.c index a24c58e..3448e7c 100644 --- a/fs/filesystems.c +++ b/fs/filesystems.c @@ -110,6 +110,7 @@ int unregister_filesystem(struct file_system_type * fs) *tmp = fs->next; fs->next = NULL; write_unlock(&file_systems_lock); + synchronize_rcu(); return 0; } tmp = &(*tmp)->next;
|  |