All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kris Van Hees <kris.van.hees@oracle.com>
To: Kris Van Hees <kris.van.hees@oracle.com>
Cc: eugene.loh@oracle.com, dtrace@lists.linux.dev,
	dtrace-devel@oss.oracle.com
Subject: Re: [PATCH 07/22] Supply a default probe_info()
Date: Fri, 13 Sep 2024 21:59:42 -0400	[thread overview]
Message-ID: <ZuTuDumQTJ7R+f0W@oracle.com> (raw)
In-Reply-To: <ZuTZVNrF2WAZpbrV@oracle.com>

On Fri, Sep 13, 2024 at 08:31:16PM -0400, Kris Van Hees wrote:
> Is this still needed after the fix we put in for dealing with argc == -1, i.e.
> commit 0e3231a268 "ident: fix unsigned vs signed comparison" ?

Ah no, you posted one that is based on the ident fix.

Comments below...

> On Thu, Aug 29, 2024 at 01:22:04AM -0400, eugene.loh@oracle.com wrote:
> > From: Eugene Loh <eugene.loh@oracle.com>
> > 
> > Signed-off-by: Eugene Loh <eugene.loh@oracle.com>
> > ---
> >  libdtrace/dt_probe.c        |  4 +++-
> >  libdtrace/dt_prov_cpc.c     | 11 -----------
> >  libdtrace/dt_prov_dtrace.c  | 10 ----------
> >  libdtrace/dt_prov_fbt.c     | 10 ----------
> >  libdtrace/dt_prov_profile.c | 11 -----------
> >  5 files changed, 3 insertions(+), 43 deletions(-)
> > 
> > diff --git a/libdtrace/dt_probe.c b/libdtrace/dt_probe.c
> > index 0b53121a..ab90d2ed 100644
> > --- a/libdtrace/dt_probe.c
> > +++ b/libdtrace/dt_probe.c
> > @@ -892,8 +892,10 @@ dt_probe_args_info(dtrace_hdl_t *dtp, dt_probe_t *prp)
> >  	/* Only retrieve probe argument information once per probe. */
> >  	if (prp->argc != -1)
> >  		return 0;
> > -	if (!prp->prov->impl->probe_info)
> > +	if (!prp->prov->impl->probe_info) {
> > +		prp->argc = 0;
> >  		return 0;
> > +	}
> >  	rc = prp->prov->impl->probe_info(dtp, prp, &argc, &argv);
> >  	if (rc == -1)
> >  		return rc;

I think that it might be cleaner to do:

	if (prp->prov->impl->probe_info &&
	    prp->prov->impl->probe_info(dtp, prp, &argc, &argv) == -1)
		return -1;

because the code that follows will look at argc (initialized as 0) and argv
(initialized as NULL), so if there is no probe_info hook, those initial
values will result in prp->argc being set to 0.

> > diff --git a/libdtrace/dt_prov_cpc.c b/libdtrace/dt_prov_cpc.c
> > index 08689b35..8f33cf58 100644
> > --- a/libdtrace/dt_prov_cpc.c
> > +++ b/libdtrace/dt_prov_cpc.c
> > @@ -451,16 +451,6 @@ static int attach(dtrace_hdl_t *dtp, const dt_probe_t *prp, int bpf_fd)
> >  	return nattach > 0 ? 0 : -1;
> >  }
> >  
> > -static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
> > -		      int *argcp, dt_argdesc_t **argvp)
> > -{
> > -	/* cpc-provider probe arguments are not typed */
> > -	*argcp = 0;
> > -	*argvp = NULL;
> > -
> > -	return 0;
> > -}
> > -
> >  static void detach(dtrace_hdl_t *dtp, const dt_probe_t *prp)
> >  {
> >  	cpc_probe_t	*datap = prp->prv_data;
> > @@ -504,7 +494,6 @@ dt_provimpl_t	dt_cpc = {
> >  	.load_prog	= &dt_bpf_prog_load,
> >  	.trampoline	= &trampoline,
> >  	.attach		= &attach,
> > -	.probe_info	= &probe_info,
> >  	.detach		= &detach,
> >  	.probe_destroy	= &probe_destroy,
> >  	.destroy	= &destroy,
> > diff --git a/libdtrace/dt_prov_dtrace.c b/libdtrace/dt_prov_dtrace.c
> > index bf87cb05..a9deccee 100644
> > --- a/libdtrace/dt_prov_dtrace.c
> > +++ b/libdtrace/dt_prov_dtrace.c
> > @@ -273,15 +273,6 @@ static int attach(dtrace_hdl_t *dtp, const dt_probe_t *prp, int bpf_fd)
> >  	return dt_tp_probe_attach(dtp, prp, bpf_fd);
> >  }
> >  
> > -static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
> > -		      int *argcp, dt_argdesc_t **argvp)
> > -{
> > -	*argcp = 0;			/* no arguments */
> > -	*argvp = NULL;
> > -
> > -	return 0;
> > -}
> > -
> >  /*
> >   * Try to clean up system resources that may have been allocated for this
> >   * probe.
> > @@ -317,7 +308,6 @@ dt_provimpl_t	dt_dtrace = {
> >  	.trampoline	= &trampoline,
> >  	.load_prog	= &dt_bpf_prog_load,
> >  	.attach		= &attach,
> > -	.probe_info	= &probe_info,
> >  	.detach		= &detach,
> >  	.probe_destroy	= &dt_tp_probe_destroy,
> >  };
> > diff --git a/libdtrace/dt_prov_fbt.c b/libdtrace/dt_prov_fbt.c
> > index 62c568ce..21f63ddf 100644
> > --- a/libdtrace/dt_prov_fbt.c
> > +++ b/libdtrace/dt_prov_fbt.c
> > @@ -411,15 +411,6 @@ static int kprobe_attach(dtrace_hdl_t *dtp, const dt_probe_t *prp, int bpf_fd)
> >  	return dt_tp_probe_attach(dtp, prp, bpf_fd);
> >  }
> >  
> > -static int kprobe_probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
> > -			     int *argcp, dt_argdesc_t **argvp)
> > -{
> > -	*argcp = 0;			/* no arguments by default */
> > -	*argvp = NULL;
> > -
> > -	return 0;
> > -}
> > -
> >  /*
> >   * Try to clean up system resources that may have been allocated for this
> >   * probe.
> > @@ -469,7 +460,6 @@ dt_provimpl_t	dt_fbt_kprobe = {
> >  	.load_prog	= &dt_bpf_prog_load,
> >  	.trampoline	= &kprobe_trampoline,
> >  	.attach		= &kprobe_attach,
> > -	.probe_info	= &kprobe_probe_info,
> >  	.detach		= &kprobe_detach,
> >  	.probe_destroy	= &dt_tp_probe_destroy,
> >  };
> > diff --git a/libdtrace/dt_prov_profile.c b/libdtrace/dt_prov_profile.c
> > index bc224348..e1369ca9 100644
> > --- a/libdtrace/dt_prov_profile.c
> > +++ b/libdtrace/dt_prov_profile.c
> > @@ -299,16 +299,6 @@ static int attach(dtrace_hdl_t *dtp, const dt_probe_t *prp, int bpf_fd)
> >  	return nattach > 0 ? 0 : -1;
> >  }
> >  
> > -static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
> > -		      int *argcp, dt_argdesc_t **argvp)
> > -{
> > -	/* profile-provider probe arguments are not typed */
> > -	*argcp = 0;
> > -	*argvp = NULL;
> > -
> > -	return 0;
> > -}
> > -
> >  static void detach(dtrace_hdl_t *dtp, const dt_probe_t *prp)
> >  {
> >  	profile_probe_t	*pp = prp->prv_data;
> > @@ -337,7 +327,6 @@ dt_provimpl_t	dt_profile = {
> >  	.load_prog	= &dt_bpf_prog_load,
> >  	.trampoline	= &trampoline,
> >  	.attach		= &attach,
> > -	.probe_info	= &probe_info,
> >  	.detach		= &detach,
> >  	.probe_destroy	= &probe_destroy,
> >  };
> > -- 
> > 2.43.5
> > 

  reply	other threads:[~2024-09-14  1:59 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-29  5:21 [PATCH 01/22] test: Handle dtrace:::ERROR arg3 specially eugene.loh
2024-08-29  5:21 ` [PATCH 02/22] test: Clean up tests still expecting obsolete "at DIF offset NN" eugene.loh
2024-08-29  5:22 ` [PATCH 03/22] Action clear() should clear only one aggregation eugene.loh
2024-09-06 21:43   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 04/22] Remove unused "next" arg from dt_flowindent() eugene.loh
2024-09-06 22:01   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 05/22] Set the ERROR PRID in BPF code eugene.loh
2024-09-07  0:20   ` Kris Van Hees
2024-09-07  1:25     ` Eugene Loh
2024-09-07  2:03       ` Kris Van Hees
2024-09-12 20:33         ` Kris Van Hees
2024-09-13 17:21           ` Eugene Loh
2024-08-29  5:22 ` [PATCH 06/22] Fix provider lookup to use prv not prb eugene.loh
2024-09-13 20:01   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 07/22] Supply a default probe_info() eugene.loh
2024-09-14  0:31   ` Kris Van Hees
2024-09-14  1:59     ` Kris Van Hees [this message]
2024-08-29  5:22 ` [PATCH 08/22] dtprobed: Fix comment typo eugene.loh
2024-09-14 15:41   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 09/22] Clean up dtsd_* members eugene.loh
2024-09-14 15:40   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 10/22] Simplify dtrace_stmt_create() attr init eugene.loh
2024-09-14 16:25   ` Kris Van Hees
2024-09-14 16:32     ` [DTrace-devel] " Kris Van Hees
2024-09-19 17:38       ` Eugene Loh
2024-09-19 17:42         ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 11/22] DTPPT_POST_OFFSETS is unused eugene.loh
2024-09-14 16:35   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 12/22] Remove apparently redundant assignment eugene.loh
2024-09-14 16:37   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 13/22] Eliminate unused args to dt_spec_buf_add_data() eugene.loh
2024-09-14 17:06   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 14/22] Both dted_uarg and dofe_uarg are unused eugene.loh
2024-09-14 17:08   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 15/22] test: Clean up the specsize tests eugene.loh
2024-09-14 17:57   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 16/22] test: Fix the speculative tests that checked bufsize eugene.loh
2024-09-14 18:00   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 17/22] test: Tweak spec sizes to bracket size jumps more narrowly eugene.loh
2024-09-14 18:07   ` Kris Van Hees
2024-09-17 18:05     ` Eugene Loh
2024-08-29  5:22 ` [PATCH 18/22] test: Remove tst.DTRACEFLT_BADADDR2.d dependency on specific PC eugene.loh
2024-09-14 18:10   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 19/22] test: Fix tst.probestar.d trigger eugene.loh
2024-09-14 18:13   ` Kris Van Hees
2024-10-17 22:53     ` Eugene Loh
2024-08-29  5:22 ` [PATCH 20/22] test: Annotate some XFAILs eugene.loh
2024-09-14 18:29   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 21/22] test: Fix DIRNAME eugene.loh
2024-08-29 20:25   ` [DTrace-devel] " Sam James
2024-09-14 18:43   ` Kris Van Hees
2024-08-29  5:22 ` [PATCH 22/22] test: Update tst.newprobes.sh xfail message eugene.loh
2024-09-14 18:45   ` Kris Van Hees
2024-08-29 15:57 ` [PATCH 01/22] test: Handle dtrace:::ERROR arg3 specially Kris Van Hees

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZuTuDumQTJ7R+f0W@oracle.com \
    --to=kris.van.hees@oracle.com \
    --cc=dtrace-devel@oss.oracle.com \
    --cc=dtrace@lists.linux.dev \
    --cc=eugene.loh@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.