|
From: Frederik D. <dew...@fr...> - 2006-03-02 19:05:41
|
Hi, I'd be interested in making Helgrind work again, and I've read the current code. I'd appreciate a few pointers: - Helgrind in Valgrind-2.2 took advantage of the LOCK operation to detect a bus_lock. From what I gathered in the guest_x86 code, there is no such equivalent in IR. Am I correct when I assume that Helgrind needs a kind of Ist_Lock instruction to work properly? - I think that the Eraser implementation code can work as-is. In fact most of the porting work would be in helgrind's hg_instrument function. Is that a correct assumption? - I didn't get the "we need to get thread operation tracking working again after the changes added in Valgrind 2.4.0" comment. What kind of information is needed that is not available in current Valgrind? Thank you for your time, Frederik |
|
From: Julian S. <js...@ac...> - 2006-03-03 19:23:27
|
> - Helgrind in Valgrind-2.2 took advantage of the LOCK operation to > detect a bus_lock. From what I gathered in the guest_x86 code, there > is no such equivalent in IR. Am I correct when I assume that Helgrind > needs a kind of Ist_Lock instruction to work properly? I don't know, because I don't know what Helgrind was doing with these LOCK annotations (or whatever they are) in 2.2. It would be good if you could figure out what is really required. I'd be happy to add appropriate support in IR-world once we know what's needed. > - I think that the Eraser implementation code can work as-is. In fact > most of the porting work would be in helgrind's hg_instrument > function. Is that a correct assumption? Not entirely. You do need to redo hg_instrument, but also I believe there are a number of places in Helgrind where it is assumed that sizeof(void*) == 4, and so it won't work on a 64-bit platform without cleaning that up. > - I didn't get the "we need to get thread operation tracking working > again after the changes added in Valgrind 2.4.0" comment. What kind of > information is needed that is not available in current Valgrind? In 2.2, helgrind got notified about calls to pthread_mutex_lock/unlock, thread creation, etc. The mechanism to do was then broken in 2.4 and although we are finally back in a situation where it would be easy to fix it, that has not yet happened. J |