blob: da036877dce3f76d610c1f4fe6e1ded77003db63 [file] [log] [blame]
bart7c75dbc2009-08-07 07:49:36 +00001Last updated August 7, 2009.
bartd45d9952009-05-31 18:53:54 +00002~~~~~~~~~~~~~~~~~~~~~~~~~~
sewardjaf44c822007-11-25 14:01:38 +00003
4
bartd45d9952009-05-31 18:53:54 +00005The DRD tool
6~~~~~~~~~~~~
bart7c75dbc2009-08-07 07:49:36 +00007- Improve the code for suppressing races reported on glibc FILE objects, e.g. by
8 intercepting all operations on FILE objects and by associating mutex semantics
9 with FILE objects. Verify that races on unsynchronized *_unlocked() operations
10 are reported. Remove FILE-I/O suppression patterns from glibc-2.X-drd.supp.
11 See also http://www.unix.org/whitepapers/reentrant.html.
bartaae367c2008-04-19 15:17:08 +000012- Add locking order checking. Start from the following information:
13 * http://sourceforge.net/mailarchive/message.php?msg_id=alpine.LNX.1.10.0803270822080.17890%40mudge.stoecker.eu
14 * http://lwn.net/Articles/185605/
15 * 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 +000016- Make sure tc14_laog_dinphils is run during drd regression tests
bart906ef122008-05-25 18:11:32 +000017 (only possible after locking order checking is implemented).
bartd45d9952009-05-31 18:53:54 +000018- Evaluate whether integration of drd with one of the available Valgrind GUI's
19 makes sense (http://valgrind.org/downloads/guis.html).
bart3bdf1252008-03-23 14:32:21 +000020
sewardjaf44c822007-11-25 14:01:38 +000021
22Testing
23~~~~~~~
bartd45d9952009-05-31 18:53:54 +000024- Measure the performance and the memory overhead of drd on the PARSEC
barte4da24f2008-06-17 14:19:04 +000025 benchmark (http://parsec.cs.princeton.edu/license.htm).
26- Test with Synfig Studio (see also http://bugs.kde.org/show_bug.cgi?id=158555)
27- Test with a multithreaded Python application.
sewardjaf44c822007-11-25 14:01:38 +000028
29
30Documentation
31~~~~~~~~~~~~~
bartd45d9952009-05-31 18:53:54 +000032- Document the algorithms used in drd.
bart7f912c02008-07-07 08:45:55 +000033- Add comment on double checked locking.
bartd45d9952009-05-31 18:53:54 +000034- Add comment on lockless algorithms in general and circular buffers in
35 particular.
bartfbccd7f2008-05-10 13:00:27 +000036- Explain how to handle transactions (with regard to locking order).