[dtrace-discuss] What am I missing in the dtrace script?
Bart Smaalders
bart.smaalders at Sun.COM
Fri Jul 13 09:46:47 PDT 2007
Brian D. Horn wrote:
> Wee Yeh Tan wrote:
>> On 7/13/07, Brian D. Horn <Brian.Horn at sun.com> wrote:
>>> Ok, then the question becomes "Where is documented that aggregates are
>>> MP safe, but scalars are
>>> not MP safe?"
>> Hah... I sort of saw that coming. I recall seeing this somewhere
>> though I cannot remember exactly where. Didn't see it in Bryan's
>> DTrace gotchas.
>>
>> Does this warrant a bug against the documentation? Perhaps a note in
>> the variables section saying that "Global variables are not MP safe."?
>>
> I don't know whether it is a bug or not yet. I may have missed some
> piece of documentation or seen old documentation. It also begs the
> question of "Why was it decided that scalars should not be MP safe?"
> (assuming that is was decided as such!).
The question here isn't whether "scalaers are mt-safe", it's whether
or not the ++ and -- operators are atomic.
Would you expect
foo = foo + 1;
to work safely?
How about:
bar = foo;
foo = bar + 1;
There's no implicit locking in DTrace. Aggregations are specifically
designed to be safe, and are documented as such:
> For performance-related questions, aggregated data is often more
> useful than individual data points. DTrace provides several built-in
> aggregating functions. When an aggregating function is applied to
> subsets of a collection of data, then applied again to the results
> of the analysis of those subsets, the results are identical to the
> results returned by the aggregating function when it is applied to
> the collection as a whole.
>
> The DTrace facility stores a running count of data items for
> aggregations. The aggregating functions store only the current
> intermediate result and the new element that the function is being
> applied to. The intermediate results are allocated on a per-CPU basis.
> Because this allocation scheme does not require locks, the implementation
> is inherently scalable.
--
Bart Smaalders Solaris Kernel Performance
barts at cyber.eng.sun.com http://blogs.sun.com/barts
More information about the dtrace-discuss
mailing list