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

eugene.loh at oracle.com eugene.loh at oracle.com
Fri Jul 8 14:45:17 UTC 2022


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>
---
 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




More information about the DTrace-devel mailing list