From: Bart Van Assche Date: Mon, 7 Jul 2008 08:45:55 +0000 (+0000) Subject: Updated internal documentation. X-Git-Tag: svn/VALGRIND_3_4_0~363 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a562a79946267130996e84412626514bfda3acac;p=thirdparty%2Fvalgrind.git Updated internal documentation. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8375 --- diff --git a/drd/TODO.txt b/drd/TODO.txt index b3fc34efb6..bbfdc108c0 100644 --- a/drd/TODO.txt +++ b/drd/TODO.txt @@ -15,6 +15,7 @@ Data-race detection algorithm - 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 @@ -27,6 +28,8 @@ Testing 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. diff --git a/drd/Testing.txt b/drd/Testing.txt index 90a2165308..2502a8e833 100644 --- a/drd/Testing.txt +++ b/drd/Testing.txt @@ -4,20 +4,25 @@ How to test DRD 1. Run the regression tests. After having compiled DRD, run the following command: perl tests/vg_regtest drd -2. Test the slowdown for matinv for various matrix sizes via the script +2. Run Konstantin's regression tests: + svn checkout http://data-race-test.googlecode.com/svn/trunk drt + make -C drt/unittest -s build + ./vg-in-place --tool=drd drt/unittest/racecheck_unittest 2>&1|less +3. Test the slowdown for matinv for various matrix sizes via the script drd/scripts/run-matinv (must be about 24 for i == 1 and about 31 for i == 10 with n == 200). -3. Test whether DRD works with standard KDE applications and whether it does +4. Test whether DRD works with standard KDE applications and whether it does not print any false positives: ./vg-in-place --tool=drd kate ./vg-in-place --tool=drd --check-stack-var=yes kate ./vg-in-place --trace-children=yes --tool=drd knode ./vg-in-place --trace-children=yes --tool=drd --check-stack-var=yes knode ./vg-in-place --trace-children=yes --tool=drd amarokapp -4. Test whether DRD works with standard GNOME applications. Expect +5. Test whether DRD works with standard GNOME applications. Expect race reports triggered by ORBit_RootObject_duplicate() and after having closed the GNOME terminal window: ./vg-in-place --trace-children=yes --tool=drd gnome-terminal -5. Test DRD with Firefox. First of all, build and install Firefox 3. Next, - run the following command: +6. Test DRD with Firefox. First of all, build and install Firefox 3: + drd/scripts/download-and-build-firefox + Next, run the following command: LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --trace-children=yes --tool=drd $HOME/software/mozilla-build/dist/bin/firefox-bin diff --git a/drd/drd_barrier.c b/drd/drd_barrier.c index fac3eb73c0..0f2d4db060 100644 --- a/drd/drd_barrier.c +++ b/drd/drd_barrier.c @@ -410,6 +410,9 @@ void barrier_thread_delete(const DrdThreadId tid) struct barrier_thread_info* q; const UWord word_tid = tid; q = VG_(OSetGen_Remove)(p->oset, &word_tid); + /* q is only non-zero if the barrier object has been used by thread tid + * after the barrier_init() call and before the thread finished. + */ if (q) { barrier_thread_destroy(q);