[DTrace-devel] [PATCH 7/7] Remove obsolete (dead) code

Kris Van Hees kris.van.hees at oracle.com
Fri May 27 03:44:36 UTC 2022


On Thu, May 26, 2022 at 01:26:16PM -0700, Eugene Loh via DTrace-devel wrote:
> Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
> but it would seem to make a lot of sense to move the dt_cg_load() part of
> this into patch #2/7 and make this patch only about dtrace_work(). 
> Otherwise, if such unrelated functions are both being cleaned up, then this
> should be a big omnibus patch that purges a lot of the other obsolete code
> that's still lying around.

See my reply to #2/7 about why I want to keep them separate.

There is also nothing wrong with clean up like this happening in parts,
because e.g. there are various pieces of obsolete code that I do not want to
clean up just yet because they need to get some attention before we completely
remove them.  But the portions being removed here are most definitely ready to
be deleted.

> On 5/26/22 11:24, Kris Van Hees via DTrace-devel wrote:
> > - Remove old (obsolete) implementation of dt_cg_load()
> > - Remove old (obsolete) implementation of dtrace_work()
> > 
> > Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> > ---
> >   libdtrace/dt_cg.c   | 48 ++-------------------------------
> >   libdtrace/dt_work.c | 66 +--------------------------------------------
> >   2 files changed, 3 insertions(+), 111 deletions(-)
> > 
> > diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> > index c6e1013b..6dc20af1 100644
> > --- a/libdtrace/dt_cg.c
> > +++ b/libdtrace/dt_cg.c
> > @@ -2080,9 +2080,8 @@ dt_cg_setx(dt_irlist_t *dlp, int reg, uint64_t x)
> >   uint_t
> >   dt_cg_load(dt_node_t *dnp, ctf_file_t *ctfp, ctf_id_t type, ssize_t *ret_size)
> >   {
> > -#if 1
> > -	ctf_encoding_t e;
> > -	ssize_t size;
> > +	ctf_encoding_t	e;
> > +	ssize_t		size;
> >   	/*
> >   	 * If we're loading a bit-field, the size of our load is found by
> > @@ -2104,49 +2103,6 @@ dt_cg_load(dt_node_t *dnp, ctf_file_t *ctfp, ctf_id_t type, ssize_t *ret_size)
> >   		*ret_size = size;
> >   	return ldstw[size];
> > -#else
> > -	static const uint_t ops[] = {
> > -		DIF_OP_LDUB,	DIF_OP_LDUH,	0,	DIF_OP_LDUW,
> > -		0,		0,		0,	DIF_OP_LDX,
> > -		DIF_OP_LDSB,	DIF_OP_LDSH,	0,	DIF_OP_LDSW,
> > -		0,		0,		0,	DIF_OP_LDX,
> > -		DIF_OP_ULDUB,	DIF_OP_ULDUH,	0,	DIF_OP_ULDUW,
> > -		0,		0,		0,	DIF_OP_ULDX,
> > -		DIF_OP_ULDSB,	DIF_OP_ULDSH,	0,	DIF_OP_ULDSW,
> > -		0,		0,		0,	DIF_OP_ULDX,
> > -	};
> > -
> > -	ctf_encoding_t e;
> > -	ssize_t size;
> > -
> > -	/*
> > -	 * If we're loading a bit-field, the size of our load is found by
> > -	 * rounding cte_bits up to a byte boundary and then finding the
> > -	 * nearest power of two to this value (see clp2(), above).
> > -	 */
> > -	if ((dnp->dn_flags & DT_NF_BITFIELD) &&
> > -	    ctf_type_encoding(ctfp, type, &e) != CTF_ERR)
> > -		size = clp2(P2ROUNDUP(e.cte_bits, NBBY) / NBBY);
> > -	else
> > -		size = ctf_type_size(ctfp, type);
> > -
> > -	if (size < 1 || size > 8 || (size & (size - 1)) != 0) {
> > -		xyerror(D_UNKNOWN, "internal error -- cg cannot load "
> > -		    "size %ld when passed by value\n", (long)size);
> > -	}
> > -
> > -	size--; /* convert size to 3-bit index */
> > -
> > -	if (dnp->dn_flags & DT_NF_SIGNED)
> > -		size |= 0x08;
> > -	if (dnp->dn_flags & DT_NF_USERLAND)
> > -		size |= 0x10;
> > -
> > -	if (ret_size)
> > -		*ret_size = size;
> > -
> > -	return ops[size];
> > -#endif
> >   }
> >   static void
> > diff --git a/libdtrace/dt_work.c b/libdtrace/dt_work.c
> > index ff2a2458..8936b52f 100644
> > --- a/libdtrace/dt_work.c
> > +++ b/libdtrace/dt_work.c
> > @@ -1,6 +1,6 @@
> >   /*
> >    * Oracle Linux DTrace.
> > - * Copyright (c) 2006, 2021, Oracle and/or its affiliates. All rights reserved.
> > + * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
> >    * Licensed under the Universal Permissive License v 1.0 as shown at
> >    * http://oss.oracle.com/licenses/upl.
> >    */
> > @@ -153,14 +153,6 @@ dtrace_stop(dtrace_hdl_t *dtp)
> >   	dtp->dt_stopped = 1;
> >   	dtp->dt_endedon = dt_state_get_endedon(dtp);
> > -#if 0
> > -	/*
> > -	 * Now that we're stopped, we're going to get status one final time.
> > -	 */
> > -	if (dt_ioctl(dtp, DTRACEIOC_STATUS, &dtp->dt_status[gen]) == -1)
> > -		return dt_set_errno(dtp, errno);
> > -#endif
> > -
> >   	if (dt_handle_status(dtp, &dtp->dt_status[gen ^ 1],
> >   	    &dtp->dt_status[gen]) == -1)
> >   		return -1;
> > @@ -168,61 +160,6 @@ dtrace_stop(dtrace_hdl_t *dtp)
> >   	return 0;
> >   }
> > -#if 0
> > -dtrace_workstatus_t
> > -dtrace_work(dtrace_hdl_t *dtp, FILE *fp,
> > -    dtrace_consume_probe_f *pfunc, dtrace_consume_rec_f *rfunc, void *arg)
> > -{
> > -	int status = dtrace_status(dtp);
> > -	dtrace_optval_t policy = dtp->dt_options[DTRACEOPT_BUFPOLICY];
> > -	dtrace_workstatus_t rval;
> > -
> > -	switch (status) {
> > -	case DTRACE_STATUS_EXITED:
> > -	case DTRACE_STATUS_FILLED:
> > -	case DTRACE_STATUS_STOPPED:
> > -		/*
> > -		 * Tracing is stopped.  We now want to force dtrace_consume()
> > -		 * and dtrace_aggregate_snap() to proceed, regardless of
> > -		 * switchrate and aggrate.  We do this by clearing the times.
> > -		 */
> > -		dtp->dt_lastswitch = 0;
> > -		dtp->dt_lastagg = 0;
> > -		rval = DTRACE_WORKSTATUS_DONE;
> > -		break;
> > -
> > -	case DTRACE_STATUS_NONE:
> > -	case DTRACE_STATUS_OKAY:
> > -		rval = DTRACE_WORKSTATUS_OKAY;
> > -		break;
> > -
> > -	default:
> > -		return DTRACE_WORKSTATUS_ERROR;
> > -	}
> > -
> > -	if ((status == DTRACE_STATUS_NONE || status == DTRACE_STATUS_OKAY) &&
> > -	    policy != DTRACEOPT_BUFPOLICY_SWITCH) {
> > -		/*
> > -		 * There either isn't any status or things are fine -- and
> > -		 * this is a "ring" or "fill" buffer.  We don't want to consume
> > -		 * any of the trace data or snapshot the aggregations; we just
> > -		 * return.
> > -		 */
> > -		assert(rval == DTRACE_WORKSTATUS_OKAY);
> > -		return rval;
> > -	}
> > -
> > -#if 0
> > -	if (dtrace_aggregate_snap(dtp) == -1)
> > -		return DTRACE_WORKSTATUS_ERROR;
> > -#endif
> > -
> > -	if (dtrace_consume(dtp, fp, pfunc, rfunc, arg) == -1)
> > -		return DTRACE_WORKSTATUS_ERROR;
> > -
> > -	return rval;
> > -}
> > -#else
> >   dtrace_workstatus_t
> >   dtrace_work(dtrace_hdl_t *dtp, FILE *fp, dtrace_consume_probe_f *pfunc,
> >   	    dtrace_consume_rec_f *rfunc, void *arg)
> > @@ -248,4 +185,3 @@ dtrace_work(dtrace_hdl_t *dtp, FILE *fp, dtrace_consume_probe_f *pfunc,
> >   	return rval;
> >   }
> > -#endif
> 
> _______________________________________________
> 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