| Last updated April 14, 2008. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| |
| Data-race detection algorithm |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| - Continue discussion about unification of DRD and Helgrind client requests. |
| - Memory pool support. |
| - Add locking order checking. Start from the following information: |
| * http://sourceforge.net/mailarchive/message.php?msg_id=alpine.LNX.1.10.0803270822080.17890%40mudge.stoecker.eu |
| * http://lwn.net/Articles/185605/ |
| * http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/lockdep-design.txt;h=488773018152056ea159685e732e42452a7ae142;hb=HEAD |
| - Continue the discussion on the Valgrind mailing list about docbook and |
| 'make dist'. |
| - Let DRD print an error message and stop as soon as qt1, qt2 or qt3 is |
| loaded. Only qt4 is SMP safe. |
| - Add configure tests for the name of the 'kind' member in pthread_mutex_t. |
| - Find out why a race is reported on std::string::string(std::string const&) |
| (stc test case 16). |
| - Add support for objects that are shared over threads and that use reference |
| counting, e.g. std::string -- no races should be reported on the reference |
| count. |
| - Add test programs for destroying a condition variable / semaphore / barrier |
| being waited upon. |
| - Make sure an error message is printed if no debug information is found in |
| libopenmp.so.1. |
| - Make sure tc14_laog_dinphils is run during exp-drd regression tests. |
| - Find out why no line number or variable name information is printed for |
| races detected in parallel sections of OpenMP programs. An example: |
| ./vg-in-place --tool=exp-drd exp-drd/tests/omp_prime 4 -t 2 |
| - Find out why 'matinv 400' runs faster in 32-bit mode than in 64-bit mode |
| on the same CPU. |
| - testing on PPC and AIX (current implementation is only tested on X86 and |
| AMD64). |
| - Convert the array in drd_thread.c with thread information into an OSet. |
| - Performance testing and tuning, a.o. for kate / knode / open office / matinv. |
| |
| |
| Testing |
| ~~~~~~~ |
| - More extensive testing of reader/writer locks. |
| - Regression test for bitmap manipulation functions. |
| - test exp-drd's performance with the SPLASH-2 software, e.g. fft |
| (http://www-flash.stanford.edu/apps/SPLASH/) or the PARSEC benchmark |
| (http://parsec.cs.princeton.edu/license.htm). |
| - test with Synfig Studio (see also http://bugs.kde.org/show_bug.cgi?id=158555) |
| |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| - Document the command-line options of the exp-drd tool. |
| - Explain that happens-before race detectors are also suited for certain |
| classes of programs that do not follow a locking discipline |
| (e.g. exp-drd/test/matinv.c). |
| - Add a note about how much stack is needed for exp-drd itself. |
| |
| |
| Limitations |
| ~~~~~~~~~~~ |
| - Does not work with a glibc library compiled with linuxthreads -- NPTL is |
| required for proper operation. |