[DTrace-devel] [PATCH] cpc: Add a destroy function

Kris Van Hees kris.van.hees at oracle.com
Wed May 31 18:16:47 UTC 2023


On Wed, May 31, 2023 at 02:03:57PM -0400, Eugene Loh via DTrace-devel wrote:
> Did this one get seen?

Thanks for the ping!

> 
> On 5/19/23 14:58, eugene.loh at oracle.com wrote:
> > From: Eugene Loh <eugene.loh at oracle.com>
> > 
> > Signed-off-by: Eugene Loh <eugene.loh at oracle.com>

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

> > ---
> >   libdtrace/dt_prov_cpc.c | 21 ++++++++++++++++-----
> >   1 file changed, 16 insertions(+), 5 deletions(-)
> > 
> > diff --git a/libdtrace/dt_prov_cpc.c b/libdtrace/dt_prov_cpc.c
> > index d65ba6b6..fc4bb43b 100644
> > --- a/libdtrace/dt_prov_cpc.c
> > +++ b/libdtrace/dt_prov_cpc.c
> > @@ -199,11 +199,6 @@ static int populate(dtrace_hdl_t *dtp)
> >   			 *   - silently skip over this probe (causing later more controlled failure)
> >   			 *   - somehow emit a diagnostic message
> >   			 * For now, we just choose the middle option.
> > -			 *
> > -			 * FIXME: Memory pointed to by next_probe_map, pfmname, and Dname
> > -			 * should ideally be freed explicitly during some probe_destroy(),
> > -			 * but this is a low priority since all such memory will be freed
> > -			 * anyhow when the DTrace session ends.
> >   			 */
> >   			next_probe_map = dt_zalloc(dtp, sizeof(cpc_probe_map_t));
> >   			if (next_probe_map == NULL)
> > @@ -480,6 +475,21 @@ static void probe_destroy(dtrace_hdl_t *dtp, void *arg)
> >   	dt_free(dtp, datap);
> >   }
> > +static void destroy(dtrace_hdl_t *dtp, void *arg)
> > +{
> > +	cpc_probe_map_t *probe_map;
> > +	cpc_probe_map_t *next_probe_map;
> > +
> > +	for (probe_map = dt_list_next(arg); probe_map;
> > +	     probe_map = next_probe_map) {
> > +		free(probe_map->Dname);
> > +		free(probe_map->pfmname);
> > +		next_probe_map = dt_list_next(probe_map);
> > +		dt_free(dtp, probe_map);
> > +	}
> > +	dt_free(dtp, arg);
> > +}
> > +
> >   dt_provimpl_t	dt_cpc = {
> >   	.name		= prvname,
> >   	.prog_type	= BPF_PROG_TYPE_PERF_EVENT,
> > @@ -490,4 +500,5 @@ dt_provimpl_t	dt_cpc = {
> >   	.probe_info	= &probe_info,
> >   	.detach		= &detach,
> >   	.probe_destroy	= &probe_destroy,
> > +	.destroy	= &destroy,
> >   };
> 
> _______________________________________________
> 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