Last updated July 1, 2008.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Data-race detection algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Memory pool support.
- Find out why DRD reports an error on the POSIX implementation of libgomp.so.
- 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
- Make sure tc14_laog_dinphils is run during exp-drd regression tests
  (only possible after locking order checking is implemented).
- Find out why no 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
- Report races in glibc on stdout / stderr back to glibc maintainers.


Testing
~~~~~~~
- Measure the performance and the memory overhead of exp-drd on 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)
- Test with a multithreaded Python application.


Documentation
~~~~~~~~~~~~~
- Add comment on double checked locking.
- Add comment on circular buffers.
- Explain how to handle transactions (with regard to locking order).
- Continue the discussion on the Valgrind mailing list about docbook and
  'make dist'. See also http://bugs.kde.org/show_bug.cgi?id=162121.
