[DTrace-devel] [PATCH 33/61] Assemble tuple components at predictable offsets

Kris Van Hees kris.van.hees at oracle.com
Fri Aug 5 19:02:42 UTC 2022


On Fri, Jul 08, 2022 at 10:45:17AM -0400, eugene.loh--- via DTrace-devel wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
> 
> We concatenate tuple components in the tuple assembly area.  When a
> component is a string, we place the following component immediately
> after the terminating NUL byte.
> 
> We will use this same tuple-assembly code to support aggregation keys,
> however, and for printing aggregation keys it would be nice for each
> key to start at a predictable offset.  Make that change in dt_cg_arglist().
> 
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>

Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>

... queued for dev

> ---
>  libdtrace/dt_cg.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> index b0c2a362..5b2276b0 100644
> --- a/libdtrace/dt_cg.c
> +++ b/libdtrace/dt_cg.c
> @@ -2749,13 +2749,10 @@ dt_cg_arglist(dt_ident_t *idp, dt_node_t *args, dt_irlist_t *dlp,
>  			dt_regset_free(drp, BPF_REG_0);
>  			dt_cg_probe_error(yypcb, DTRACEFLT_BADADDR,
>  					  DT_ISIMM, 128 + i);
> -			dt_regset_xalloc(drp, BPF_REG_0);
>  
>  			emitl(dlp, lbl_valid,
> -				   BPF_ALU64_REG(BPF_ADD, treg, BPF_REG_0));
> +				   BPF_ALU64_IMM(BPF_ADD, treg, size + 1));
>  			tuplesize += size + 1;
> -
> -			dt_regset_free(drp, BPF_REG_0);
>  		} else if (t.dtdt_flags & DIF_TF_BYREF) {
>  			uint_t	lbl_valid = dt_irlist_label(dlp);
>  
> -- 
> 2.18.4
> 
> 
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel



More information about the DTrace-devel mailing list