[erlang-questions] RELEASE project D2.2 (WP2), DTrace, and timestamps

Scott Lystig Fritchie <>
Tue Sep 24 08:47:02 CEST 2013


Howdy.  I was reading this status report from the RELEASE project from
earlier this year:

    http://release-project.softlab.ntua.gr/documents/D2.2.pdf

I see this on page 16:

    "we added timestamps to all new and existing DTrace probes that we
    wanted to associate with some trace (or proling) message."

As an example, on page 17:

    probe message__queued(char *receiver, uint32_t size, uint32_t queue_len,
        int token_label, int token_previous, int token_current,
        uint64_t ts)
    
    Parameters:
    [...]
    * ts: the timestamp (in microseconds)

I'm a bit curious about the addition of these timestamp items to various
probes.  The D2.2.pdf paper doesn't say what the timestamps are, e.g.,
wallclock time-of-day (UNIX time_t/epoch-style, perhaps, but with
microsecond resolution?) or relative to the start of the virtual
machine, or some other basis.

DTrace provides a reliable, strictly increasing timestamp value, whose D
script variable name is "timestamp", which has nanosecond resolution.  A
related variable, "vtimestamp", provides the time (also in nanoseconds)
that the thread has been on-CPU.

The SystemTap framework also supplies a similar built-in functions,
e.g., gettimeofday_ns() and gettimeofday_us().

It seems to me that adding the "ts" argument to the message-queued probe
and others isn't Strictly Necessary(tm) for DTrace or SystemTap.  I
don't know enough about LTT:NG to know if they were added to make life
with LTT easier?  Thoughts?

-Scott



More information about the erlang-questions mailing list