Re: [DTrace-devel] [PATCH 1/4] cg, providers: refactor clearing probe arguments

Eugene Loh <[email protected]>
Newsgroups dev.linux.lists.dtrace
Message-ID <[email protected]>
Two things...

On 12/17/25 00:09, Kris Van Hees via DTrace-devel wrote:

> Signed-off-by: Kris Van Hees <[email protected]>
> ---
>   libdtrace/dt_cg.c           | 34 +++++++++++++++++++++++++++++++---
>   libdtrace/dt_cg.h           |  1 +
>   libdtrace/dt_prov_cpc.c     | 17 -----------------
>   libdtrace/dt_prov_dtrace.c  |  8 ++------
>   libdtrace/dt_prov_profile.c | 23 +----------------------
>   libdtrace/dt_prov_syscall.c | 10 ++--------

Is there also another clean-up site in dt_prov_sdt.c in trampoline()?

> diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> @@ -454,6 +454,32 @@ dt_cg_tramp_copy_regs(dt_pcb_t *pcb)
>   	}
>   }
>   
> +/*
> + * Clear the content of the 'argv' member of the machine state, from the given
> + * index (idx).
> + *
> + * The caller must ensure that %r7 contains the value set by the
> + * dt_cg_tramp_prologue*() functions.
> + */
> +void
> +dt_cg_tramp_clear_argv(dt_pcb_t *pcb, int idx)
> +{
> +	dt_irlist_t	*dlp = &pcb->pcb_ir;
> +	int		i, argc = ARRAY_SIZE(((dt_mstate_t *)0)->argv);
> +
> +	if (idx >= argc)
> +		return;
> +
> +	/*
> +	 *	memset(&dctx->mst->argv[idx], 0, sizeof(dt_pt_regs);
> +	 *				// stdw [%7 + DMST_ARG(idx)], 0
> +	 *				// stdw [%7 + DMST_ARG(idx + 1)], 0
> +	 *				//     (...)
> +	 */

Actually, the code is clearer and more concise than the comment. Plus, 
the comment is wrong?  What's sizeof(dt_pt_regs) doing in there?  Just 
drop the "memset" comment block.  The two lines of code speak for 
themselves.

> +	for (i = idx; i < argc; i++)
> +		emit(dlp, BPF_STORE_IMM(BPF_DW, BPF_REG_7, DMST_ARG(i), 0));
> +}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.