|
From: Tony R. <ton...@bu...> - 2006-09-04 13:07:44
|
Hello, Two years ago, we had studied Valgrind/Helgrind. Our conclusion was that it was not the perfect solution for helping these kinds of users: NPTL maintainers, and Linux customers support. If I remember well, Helgrind provides its own thread library. So it helps to find some kinds of bugs, but it cannot help in many complex cases related to NPTL details. So, we developed a tool named PTT (NPTL POSIX Trace Tool), aimed at providing a trace tool integrated into the NPTL library, with the lowest impact to performance and behavior as possible. It also provides some performance information related to contention. PTT is available at: http://sourceforge.net/projects/nptltracetool http://nptltracetool.sourceforge.net/ (See OLS'05 for a paper describing PTT. Or read the up-to-date documentation on these sites). PTT has been built by several students working at Bull labs since 2004 and is fully Open Source. PTT is now mature and is easy to use by end-users. It comes with documentation and has been ported/tested on ia32, x86_64, ppc (still bugs ...) and on medium/large multi-processor machines. It has been tested with OPTS and some other applications (Java, HPC). PTT could also be added to glibc by distributions: it generates an unmodified version of the glibc and a separate version of glibc enabling to generate traces. And one can move from one library to the other very easily. But the best solution would be to have it added to the glibc sources. it would be a matter of hours to add it. Discussions with glibc maintainers (Ulrich Drepper !!) have failed. These guys do not seem to add a debug tool inside the glibc ... Probably they do not know what "customer" and "support" mean. My opinion is that the number of multi-threaded applications will increase quickly now due to the availability of multi-core processors. Since multi-threading is so complex, tools are needed. So, if Valgrind developers are interested by PTT and would like either to add it to the Valgrind's Tool Suite or to mix it with the Helgrind tool, that would be very nice and very useful for the Linux community, I think. The main 4 values of PTT source code are: - its ability to integrated smoothly within glibc source code, - the trace points which required a lot of study to define, - the motor and buffer aimed at not slowing down applications, - the integration within NPTL. (The best solution is still to convince the glibc maintainers to accept PTT. But, after several tries, I have no more hope ... However, once SystemTap offers user-land hooks and is widely accepted by the community, I guess they will have to change their mind and to accept debug/trace tools.) Some people working in Linux RT are interested by an extension of PTT to RT, but I've had no news since months ... Your opinion ? Tony |