blob: b84acbd6f88c4daf419ca30553c5e7bfab67eb79 [file] [log] [blame]
bartd45d9952009-05-31 18:53:54 +00001Last updated May 30, 2009.
2~~~~~~~~~~~~~~~~~~~~~~~~~~
sewardjaf44c822007-11-25 14:01:38 +00003
4
bartd45d9952009-05-31 18:53:54 +00005The DRD tool
6~~~~~~~~~~~~
7- Eliminate Valgrind's thread ID's from DRD's output, and only keep the
8 DrdThreadId.
9- Add support for Ist_CAS once the DCAS branch has been merged to the trunk.
bartaae367c2008-04-19 15:17:08 +000010- Add locking order checking. Start from the following information:
11 * http://sourceforge.net/mailarchive/message.php?msg_id=alpine.LNX.1.10.0803270822080.17890%40mudge.stoecker.eu
12 * http://lwn.net/Articles/185605/
13 * http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/lockdep-design.txt;h=488773018152056ea159685e732e42452a7ae142;hb=HEAD
bartd45d9952009-05-31 18:53:54 +000014- Make sure tc14_laog_dinphils is run during drd regression tests
bart906ef122008-05-25 18:11:32 +000015 (only possible after locking order checking is implemented).
bartd45d9952009-05-31 18:53:54 +000016- Evaluate whether integration of drd with one of the available Valgrind GUI's
17 makes sense (http://valgrind.org/downloads/guis.html).
bart0e3a0be2008-07-03 16:23:17 +000018- Find out why no variable name information is printed for races
19 detected in parallel sections of OpenMP programs. An example:
bartd45d9952009-05-31 18:53:54 +000020 ./vg-in-place --tool=drd drd/tests/omp_prime 4 -t 2
21- Improve the code for suppressing races reported on glibc FILE objects, e.g. by
22 intercepting all operations on FILE objects and by associating mutex semantics
23 with FILE objects. Verify that races on unsynchronized *_unlocked() operations
24 are reported. Remove FILE-I/O suppression patterns from glibc-2.X-drd.supp.
25 See also http://www.unix.org/whitepapers/reentrant.html.
26- Find out why DRD reports an error on the POSIX implementation of libgomp.so.
bart3bdf1252008-03-23 14:32:21 +000027
sewardjaf44c822007-11-25 14:01:38 +000028
29Testing
30~~~~~~~
bartd45d9952009-05-31 18:53:54 +000031- Measure the performance and the memory overhead of drd on the PARSEC
barte4da24f2008-06-17 14:19:04 +000032 benchmark (http://parsec.cs.princeton.edu/license.htm).
33- Test with Synfig Studio (see also http://bugs.kde.org/show_bug.cgi?id=158555)
34- Test with a multithreaded Python application.
sewardjaf44c822007-11-25 14:01:38 +000035
36
37Documentation
38~~~~~~~~~~~~~
bartd45d9952009-05-31 18:53:54 +000039- Document the features added after the 3.4.0 release.
40- Document the algorithms used in drd.
bart7f912c02008-07-07 08:45:55 +000041- Add comment on double checked locking.
bartd45d9952009-05-31 18:53:54 +000042- Add comment on lockless algorithms in general and circular buffers in
43 particular.
bartfbccd7f2008-05-10 13:00:27 +000044- Explain how to handle transactions (with regard to locking order).