On Dec 5, 2007 1:29 PM, Julian Seward <[EMAIL PROTECTED]> wrote: > On Wednesday 05 December 2007 13:17, Konstantin Serebryany wrote: > > >> As far as I understand, helgrind is not more than just Eraser :) > > helgrind is more than just Eraser :) > > True. Helgrind is Eraser + usage of happens-before dependencies > resulting from thread creation, joinage, condition-variable signalling > (to the extent these dependencies are visible), and through semaphore > events, + the ability to transfer memory from shared states to exclusive > ownership states at pthread_join points.
Although I have a lot of respect for the work you have done on the Helgrind tool, I still do not understand why you started from the Eraser algorithm. This algorithm is easy to mislead, e.g. it doesn't recognize user-implemented synchronization primitives. Many developers implement reader-writer locks on top of mutexes because this makes code easier to port between Linux and Windows. Obtaining a reader-lock is then implemented as (simplified) (lock mutex, increment reader count, unlock mutex). The Eraser algorithm won't recognize such code as a reader lock. Another issue with the Eraser algorithms are HPC algorithms where computations consist of several steps, where the different steps are only separated by barriers. The memory accesses within a step of the different threads do not conflict, but the memory accesses of different steps contain conflicts. A vector-clock based algorithm won't report any false positive for this scenario, but an Eraser-style algorithm will report all conflicting accesses as data races. Regards, Bart Van Assche. ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Valgrind-developers mailing list Valgrind-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-developers