On Monday 17 September 2007 14:07, David Chinner wrote: > On Fri, Sep 14, 2007 at 06:48:55AM +1000, Nick Piggin wrote: > > OK, the vunmap batching code wipes your TLB flushing and IPIs off > > the table. Diffstat below, but the TLB portions are here (besides that > > _everything_ is probably lower due to less TLB misses caused by the > > TLB flushing): > > > > -170 -99.4% sn2_send_IPI > > -343 -100.0% sn_send_IPI_phys > > -17911 -99.9% smp_call_function > > > > Total performance went up by 30% on a 64-way system (248 seconds to > > 172 seconds to run parallel finds over different huge directories). > > Good start, Nick ;) I didn't have the chance to test against a 16K directory block size to find the "optimal" performance, but it is something I will do (I'm sure it will be still a _lot_ faster than 172 seconds :)). > > 23012 54790.5% _read_lock > > 9427 329.0% __get_vm_area_node > > 5792 0.0% __find_vm_area > > 1590 53000.0% __vunmap > > .... > > _read_lock? I though vmap() and vunmap() only took the vmlist_lock in > write mode..... Yeah, it is a slight change... the lazy vunmap only has to take it for read. In practice, I'm not sure that it helps a great deal because everything else still takes the lock for write. But that explains why it's popped up in the profile. > > Next I have some patches to scale the vmap locks and data > > structures better, but they're not quite ready yet. This looks like it > > should result in a further speedup of several times when combined > > with the TLB flushing reductions here... > > Sounds promising - when you have patches that work, send them my > way and I'll run some tests on them. Still away from home (for the next 2 weeks), so I'll be going a bit slow :P I'm thinking about various scalable locking schemes and I'll definitely ping you when I've made a bit of progress. Thanks, Nick - 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