blob: 4c19450c8da9487fff6e8c5d7a6d03b2243cc014 [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.
bartdf5a1e22009-06-03 08:11:02 +000010- Update the description of DRD in docs/xml/manual-intro.xml before 3.4.2 or
11 3.5.0 is released, whichever is released first.
12- Update the DRD manual before 3.5.0 is released.
bartaae367c2008-04-19 15:17:08 +000013- Add locking order checking. Start from the following information:
14 * http://sourceforge.net/mailarchive/message.php?msg_id=alpine.LNX.1.10.0803270822080.17890%40mudge.stoecker.eu
15 * http://lwn.net/Articles/185605/
16 * 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 +000017- Make sure tc14_laog_dinphils is run during drd regression tests
bart906ef122008-05-25 18:11:32 +000018 (only possible after locking order checking is implemented).
bartd45d9952009-05-31 18:53:54 +000019- Evaluate whether integration of drd with one of the available Valgrind GUI's
20 makes sense (http://valgrind.org/downloads/guis.html).
bart0e3a0be2008-07-03 16:23:17 +000021- Find out why no variable name information is printed for races
22 detected in parallel sections of OpenMP programs. An example:
bartd45d9952009-05-31 18:53:54 +000023 ./vg-in-place --tool=drd drd/tests/omp_prime 4 -t 2
24- Improve the code for suppressing races reported on glibc FILE objects, e.g. by
25 intercepting all operations on FILE objects and by associating mutex semantics
26 with FILE objects. Verify that races on unsynchronized *_unlocked() operations
27 are reported. Remove FILE-I/O suppression patterns from glibc-2.X-drd.supp.
28 See also http://www.unix.org/whitepapers/reentrant.html.
29- Find out why DRD reports an error on the POSIX implementation of libgomp.so.
bart3bdf1252008-03-23 14:32:21 +000030
sewardjaf44c822007-11-25 14:01:38 +000031
32Testing
33~~~~~~~
bartd45d9952009-05-31 18:53:54 +000034- Measure the performance and the memory overhead of drd on the PARSEC
barte4da24f2008-06-17 14:19:04 +000035 benchmark (http://parsec.cs.princeton.edu/license.htm).
36- Test with Synfig Studio (see also http://bugs.kde.org/show_bug.cgi?id=158555)
37- Test with a multithreaded Python application.
sewardjaf44c822007-11-25 14:01:38 +000038
39
40Documentation
41~~~~~~~~~~~~~
bartd45d9952009-05-31 18:53:54 +000042- Document the features added after the 3.4.0 release.
43- Document the algorithms used in drd.
bart7f912c02008-07-07 08:45:55 +000044- Add comment on double checked locking.
bartd45d9952009-05-31 18:53:54 +000045- Add comment on lockless algorithms in general and circular buffers in
46 particular.
bartfbccd7f2008-05-10 13:00:27 +000047- Explain how to handle transactions (with regard to locking order).