bart | 7c75dbc | 2009-08-07 07:49:36 +0000 | [diff] [blame^] | 1 | Last updated August 7, 2009. |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
sewardj | af44c82 | 2007-11-25 14:01:38 +0000 | [diff] [blame] | 3 | |
| 4 | |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 5 | The DRD tool |
| 6 | ~~~~~~~~~~~~ |
bart | 7c75dbc | 2009-08-07 07:49:36 +0000 | [diff] [blame^] | 7 | - 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. |
bart | aae367c | 2008-04-19 15:17:08 +0000 | [diff] [blame] | 12 | - 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 |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 16 | - Make sure tc14_laog_dinphils is run during drd regression tests |
bart | 906ef12 | 2008-05-25 18:11:32 +0000 | [diff] [blame] | 17 | (only possible after locking order checking is implemented). |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 18 | - Evaluate whether integration of drd with one of the available Valgrind GUI's |
| 19 | makes sense (http://valgrind.org/downloads/guis.html). |
bart | 3bdf125 | 2008-03-23 14:32:21 +0000 | [diff] [blame] | 20 | |
sewardj | af44c82 | 2007-11-25 14:01:38 +0000 | [diff] [blame] | 21 | |
| 22 | Testing |
| 23 | ~~~~~~~ |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 24 | - Measure the performance and the memory overhead of drd on the PARSEC |
bart | e4da24f | 2008-06-17 14:19:04 +0000 | [diff] [blame] | 25 | 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. |
sewardj | af44c82 | 2007-11-25 14:01:38 +0000 | [diff] [blame] | 28 | |
| 29 | |
| 30 | Documentation |
| 31 | ~~~~~~~~~~~~~ |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 32 | - Document the algorithms used in drd. |
bart | 7f912c0 | 2008-07-07 08:45:55 +0000 | [diff] [blame] | 33 | - Add comment on double checked locking. |
bart | d45d995 | 2009-05-31 18:53:54 +0000 | [diff] [blame] | 34 | - Add comment on lockless algorithms in general and circular buffers in |
| 35 | particular. |
bart | fbccd7f | 2008-05-10 13:00:27 +0000 | [diff] [blame] | 36 | - Explain how to handle transactions (with regard to locking order). |