does DRDT deal with atomic_ops(3C)?

The DRDT tutorial says (Section 6.1.1):

The Data-Race Detection Tool can recognize most standard synchronization APIs and constructs provided by OpenMP, POSIX threads, and Solaris threads. However, the tool cannot recognize roll-your-own style synchronizations, and may report false data-races if such synchronizations are used. For example, the tool cannot recognize implementation of locks using CAS instructions, post and wait operations using busy-waits, etc.

So the question is, does DRDT automatically recognize atomic_ops(3C) operations?

It's worth revising the tutorial to establish the answer explicitly, one way or the other.

And if the answer is no, then a worked-out example of using the rdt_notify_...() functions

around such an operation would be useful.

Similarly, any interaction with membar_ops(3C) routines should be described.

[889 byte] By [herteg] at [2007-11-26 10:40:04]
# 1

Thanks for the good question and suggestion!

The current DRDT does NOT recognize atomic_ops(3C). Two concurrent updates of the same memory location via two atomic_ops(3C) are not considered data race. Two concurrent updates of the same memory location (one by normal store and the other via atomic_ops()) are not considered data race either.

The current DRDT does not recognize membar_ops(3C) routines either. The effects of membar_ops() are not considered.

Thanks!

-- Yuan

yuan at 2007-7-7 2:51:32 > top of Java-index,Development Tools,Solaris and Linux Development Tools...