On 8/18/2014 9:09 AM, Jan Včelák wrote:
> Hello list,
>
> we develop an authoritative DNS server called Knot DNS and we use the
> userspace-rcu library [1] for synchronization. The library implements the
> synchronization by inserting appropriate sfence/lfence/mfcence instructions
> and some reference counting around.
>
> Currently, we are trying to track down an invalid read reported by Valgrind.
> The problem appears very rarely and it's quite difficult to reproduce.
> Valgrind claims that a previously freed memory is being read. However we quite
> sure that the synchronization is correct and that this problem should not
> happen.
>
> Does Valgrind support the mentioned memory barrier instructions?

If it did not *recognize* the instruction, then valgrind would bomb out
with an error message giving the op code byte sequence and saying it did
not recognize it.  A possibility is that it recognizes the instruction
but does not implement it as you expect.  Someone else will need to
answer as to that possibility.

> I'm not rejecting that there is a problem in our code, but I want to make sure
> that we are chasing a real bug.

You might want to verify that valgrind and your code have the same
notion of what the malloc/free routines are, etc., i.e., that valgrind
is able to hook into all allocation and freeing calls your application
uses.

Best wishes -- Eliot Moss

------------------------------------------------------------------------------
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to