[DTrace-devel] [PATCH v3 01/08] Ensure that BEGIN is the first probe and END the last one

Eugene Loh eugene.loh at oracle.com
Thu Sep 17 10:53:14 PDT 2020


I'm still not convinced the "chicken-and-egg" problems in this patch set 
are being handled sufficiently clearly -- e.g., introducing things that 
almost immediately are changed by other patches.  I understand that in 
development we sometimes backtrack, but this is supposed to be a 
coherent patch set.

Nevertheless, subject to fixing the s/tp/to/ typo below, that so far has 
survived three versions of this patch:

         Reviewed-by: Eugene Loh <eugene.loh at oracle.com>

I am certainly looking forward eagerly to see this functionality pushed!

On 09/16/2020 02:51 PM, Kris Van Hees wrote:

> diff --git a/libdtrace/dt_prov_dtrace.c b/libdtrace/dt_prov_dtrace.c
>   
> @@ -67,8 +74,33 @@ static void trampoline(dt_pcb_t *pcb)
>   	dt_irlist_t	*dlp = &pcb->pcb_ir;
>   	struct bpf_insn	instr;
>   	uint_t		lbl_exit = dt_irlist_label(dlp);
> +	dt_activity_t	act;
> +	int		adv_act;
> +
> +	/*
> +	 * The BEGIN probe should only run when the activity state is INACTIVE.
> +	 * At the end of the trampoline (after executing any clauses), the
> +	 * state must be advanced to the next state (INACTIVE -> ACTIVE).
> +	 *
> +	 * The END probe should only run when the activity state is ACTIVE.
> +	 * At the end of the trampoline (after executing any clauses), the
> +	 * state must be advanced to the next state (ACTIVE -> DRAINING).
> +	 *
> +	 * Any other probe requires the state tp be ACTIVE, and does not change

s/tp/to/

> +	 * the state.
> +	 */



More information about the DTrace-devel mailing list