[Pvfs2-developers] [PATCH] threaded kmod helper

Sam Lang slang at mcs.anl.gov
Fri Feb 15 15:25:47 EST 2008


On Feb 15, 2008, at 1:17 PM, Pete Wyckoff wrote:

> slang at mcs.anl.gov wrote on Thu, 14 Feb 2008 17:18 -0600:
>> I think the patch looks great.  My only concern is that this will  
>> make the
>> threaded client daemon never get used.  My view is that we should  
>> probably
>> have the threaded version as the default.  I think in the general  
>> case, the
>> threaded version is going to perform better.  Its pretty hard to  
>> buy a
>> system that doesn't have at least two cores today, and even on a
>> uni-processor system, the performance of the threaded daemon  
>> shouldn't be
>> much worse than the non-threaded.
>>
>> I originally added the threaded client functionality to see if it  
>> would
>> help performance, but it turned out to be buggy.  Maybe with Phil's  
>> recent
>> thread-safety fixes to the system interfaces, we should revisit  
>> making the
>> threaded daemon the default.
>>
>> I'm not sure that the overhead of a single operation will be  
>> affected much,
>> honestly.  We can't disable threads and locking entirely, since we  
>> need the
>> remount thread running.  I think the patch I just committed to fix  
>> the
>> segfault in HEAD will likely help with individual operation  
>> performance
>> more than disabling threads would.  Just my 2c though.
>> Its hard to get a feeling for how much the threaded daemon would help
>> without a thorough performance analysis of the two on a number of  
>> different
>> systems.  Something I would like to do at some point, but its  
>> pretty low on
>> the list.
>
> Your arguments about wanting to favor the threaded client core are
> good.  I'm just afraid to do that now, at the same time, given there
> hasn't even been much testing by us developer types.
>
> My unscientific study of listing 1000 files gives this:
>
> threading disabled (default)
>
> ib28$ time ls -la /pvfs > /dev/null
> 0.004 user  0.024 sys  0.538 real
> ib28$ time ls -la /pvfs > /dev/null
> 0.008 user  0.016 sys  0.530 real
> ib28$ time ls -la /pvfs > /dev/null
> 0.004 user  0.024 sys  0.529 real
> ib28$ time ls -la /pvfs > /dev/null
>
> threading enabled
>
> ib28$ time ls -la /pvfs > /dev/null
> 0.012 user  0.024 sys  0.548 real
> ib28$ time ls -la /pvfs > /dev/null
> 0.008 user  0.024 sys  0.543 real
> ib28$ time ls -la /pvfs > /dev/null
> 0.000 user  0.036 sys  0.549 real
>
> Pretty minor difference, and doesn't show the benefits of threading
> for multiple concurrent operations.

Just from your output, it doesn't look like the listing commands are  
concurrent.  Are you backgrounding each of those?
-sam

>
>
> I'll check in my (fixed) patch, which is basically just a cleanup of
> the existing threaded client-core build.  It does the right thing
> with respect to --enable-static --enable-shared etc and only builds
> exactly what is required.  But it does make the threaded client core
> a bit tougher to get at:  you have to reconfigure instead of just
> change the options to client-core at startup time.
>
> We could all decide to start building with
> --enable-threaded-kmod-helper and see if we run into problems.  My
> basic tests pass with both versions.  Then soon/eventually switch
> that to be the default.
>
> By the way, if anybody has a suggestion for a better location for
> the threading configure options documentation than inside
> configure.in, please let me know.  At least it is near the code.
>
> 		-- Pete
>



More information about the Pvfs2-developers mailing list