[DTrace-devel] [PATCH 3/3] Ensure that BEGIN is the first probe and END the last one
Kris Van Hees
kris.van.hees at oracle.com
Fri Sep 4 20:58:38 PDT 2020
On Fri, Sep 04, 2020 at 08:40:07PM -0700, Eugene Loh wrote:
> On 09/04/2020 06:47 PM, Kris Van Hees wrote:
>
> > On Fri, Sep 04, 2020 at 05:51:11PM -0700, Eugene Loh wrote:
> >> On 08/27/2020 11:54 AM, Kris Van Hees wrote:
> >>> DTrace semantics require that the BEGIN probe is the first one to be
> >>> recorded in the trace buffers, and that the END probe is tha last one
> >>> to be recorded in the trace buffers. This is implemented using the
> >>> activity member of the DTrace state that is shared using a BPF map.
> >>>
> >>> The default activity state is INACTIVE which means that no probe will
> >>> processed except for the BEGIN probe. The BEGIN probe will only be
> >>> processed when the state is INACTIVE.
> >>>
> >>> Once the BEGIN probe processing has completed, the activity state is
> >>> advanced to ACTIVE. All probes other than BEGIN require the activity
> >>> state to be ACTIVE in order for them to be processed.
> >>> +/*
> >>> + * DTrace activity state
> >>> + */
> >>> +typedef enum dt_activity {
> >>> + DT_ACTIVITY_INACTIVE = 0, /* tracing not started */
> >>> + DT_ACTIVITY_ACTIVE, /* tracing in progress */
> >>> + DT_ACTIVITY_DRAINING, /* tracing being stopped */
> >>> + DT_ACTIVITY_STOPPED /* tracing stopped */
> >>> +} dt_activity_t;
> >>> +
> >> What is DT_ACTIVITY_STOPPED used for? Another one of those "future
> >> patch" things?
> > It is the state at which tracing has been stopped.
>
> Out of curiosity, is it used in a patch I would have seen by now, or in
> a patch that is yet to come?
Yet to come.
> >> Also, shouldn't there be a corresponding END test?
> >> unittest/end/tst.end-last.* or so?
> > No, because although we are enforcing that no probe firing will trigger the
> > processing of clauses once we reach END, it is possible that a probe that fired
> > prior to END getting triggered will not complete recording its trace data by
> > the time END records trace data.
> Okay. I wouldn't mind a note to this effect in the commit message
> (which could reasonably mention the BEGIN test), but as you like.
More information about the DTrace-devel
mailing list