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

Eugene Loh eugene.loh at oracle.com
Thu May 26 20:26:16 UTC 2022


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.

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



More information about the DTrace-devel mailing list