On Feb 21, 2008, at 1:58 PM, Phil Carns wrote:

Sam Lang wrote:
On Feb 14, 2008, at 4:34 PM, Pete Wyckoff wrote:
Add --enable option to build a threaded pvfs2-client-core, that is,
an executable linked against pvfs2-threaded.so.

Remove the "--threaded" argument from pvfs2-client. Whatever version of client-core that was configured is all that is available at runtime.
It will always be installed as pvfs2-client-core.
---
Makefile.in                          |   15 +++++++--------
configure                            |   17 +++++++++++++++--
configure.in                         |   20 ++++++++++++++++++++
src/apps/kernel/linux/module.mk.in   |    9 ++++++---
src/apps/kernel/linux/pvfs2-client.c | 31 + +-----------------------------
5 files changed, 50 insertions(+), 42 deletions(-)


What does everybody think about this?  I had complained a long time
ago about always getting a pvfs2-client-core and
pvfs2-client-core-threaded during a kernapps build.  The latter
brings in the entire libpvfs2-threaded.a and all the objects for
that.

I don't have a feel for who uses the threaded client core.  The only
way to use it now is to start pvfs2-client with the "--threaded"
option.  So I made the --enable option default to off.  Is there a
reason to want both threaded and non-threaded versions installed?
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.

FYI, I think the threaded client just got a boost in stability. There was a subtle bug in the how the job thread mgr was dealing with the device that made it possible for it to pull operations out that could not be handled. I think this could technically happen even with the non-threaded client, but this hasn't been a big deal because it could only be triggered with a) a lot of concurrent operations b) and a pvfs2-client-core daemon running fast enough to empty out the device queue (much easier w/ a dedicated thread).

There was also in the last week or two a fix to how bmi_tcp kept track of socket errors that I suspect was relevant to the threaded client core as well, but I was tracking that down in the context of some server stuff so I can't say for sure.

I agree with everything in this email thread, just commenting on the state of the threaded client in case anyone following was curious.

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.

I don't have a good feel for the threaded / non threaded impacts performance either without looking into it more.

For the non-threaded version, that remount thread really bugs me. It seems like there has to be another way to accomplish whatever its doing. Its a shame to have to pull in lpthread and turn on all of the library locks when the client-core doesn't need either for 99% of what it does.

Yeah I agree. I'm pretty sure it could be done with another state machine like our unexpected_sm.
-sam



-Phil


_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to