> One more question regarding helgrind performance:
> is it possible to track only certain memory addresses in helgrind and
> simply ignore others (i.e. don't even keep shadow values for them)?

Certainly the old (2.2.0) Helgrind had a mode in which it could
ignore stack references.  That should improve performance, although
it can be difficult to decide for sure what is and is not a stack
reference.

I have for a while been considering a different idea, which is to take
advantage of the facts that (1) Valgrind only runs one thread at once
and (2) for periods of time when a thread is running and does not do
any sync events or lock events, these state machines tend to be
idempotent -- that is, the second and subsequent presentations of the
same address to the state machine do not change its state.

The basic idea would be to note all memory references in a small 
cache.  Then, when a new reference appears, first see if it is 
already in the cache; if so ignore it.  When there is a thread 
switch or synchronisation event, the cache is flushed.  The core
provides enough hints to know when this cache should be flushed.
If the cache access is fast enough relative to the full SM, and
enough duplicate addresses appear, this could provide a substantial
speedup.

The advantage, relative to skipping stack references, is that
you don't lose any functionality.

J

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to