On Thu, Oct 08, 2009 at 11:15:27PM -0700, David Miller wrote: > From: Nick Piggin <npiggin@xxxxxxx> > Date: Fri, 9 Oct 2009 05:50:50 +0200 > > > OK, I got rid of this guy from the RCU walk. Basically now hold > > vfsmount_lock over the entire RCU path walk (which also pins the mnt) > > and use a seqlock in the fs struct to get a consistent mnt,dentry > > pair. This also simplifies the walk because we don't need the > > complexity to avoid mntget/mntput (just do one final mntget on the > > resulting mnt before dropping vfsmount_lock). > > > > vfsmount_lock adds one per-cpu atomic for the spinlock, and we > > remove two thread-shared atomics for fs->lock so a net win for > > both single threaded performance and thread-shared scalability. > > Latency is no problem because we hold rcu_read_lock for the same > > length of time anyway. > > > > The parallel git diff workload is improved by serveral percent. > > Sounds sweet Nick, can't wait to play with your next set of > patches here. http://www.kernel.org/pub/linux/kernel/people/npiggin/patches/fs-scale/ OK well there will be another rev of the patches there with everything, also with the d_mounted patch so dentry remains a nice size. Also tried rearranging some structures in the dentry to help lookups but haven't quite finished there. Jens I would be interested to see whether parallel case on the N2 is improved at all. Profiles from that case might be interesting. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html