[DTrace-devel] [PATCH 28/61] Complete the conversion of DTRACEAGG_* enums to DT_AGG_* enums
eugene.loh at oracle.com
eugene.loh at oracle.com
Fri Jul 8 14:45:12 UTC 2022
From: Eugene Loh <eugene.loh at oracle.com>
In commit 85c8512318e3
("Implement the support code for generating aggregation data"),
the enums DT_AGG_* were introduced.
In commit ecbe2271e2bb
("Implementation of the printa() action"),
the DT_AGG_* were rebased to be offset from DTRACEACT_AGGREGATION.
In commit ecbe2271e2bb
("Implementation of the printa() action"),
the older DTRACEAGG_* enums that remained were said to be replaced
by the newer DT_AGG_*.
In fact, however, instances of DTRACEAGG_* remained. This was an
issue since the enums were defined in different orders, causing
corresponding values such as DT_AGG_QUANTIZE and DTRACEAGG_QUANTIZE
to disagree. These problems were in code that was not yet active --
e.g., to print two quantize() results for the same aggregation variable
but with different keys.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
include/dtrace/actions_defines.h | 9 ---------
libdtrace/dt_aggregate.c | 20 ++++++++++----------
libdtrace/dt_cc.c | 6 +++---
libdtrace/dt_printf.c | 2 +-
4 files changed, 14 insertions(+), 23 deletions(-)
diff --git a/include/dtrace/actions_defines.h b/include/dtrace/actions_defines.h
index 3dcf25cf..a58cec68 100644
--- a/include/dtrace/actions_defines.h
+++ b/include/dtrace/actions_defines.h
@@ -97,15 +97,6 @@
*/
#define DTRACEACT_AGGREGATION 0x0700
-#define DTRACEAGG_COUNT (DTRACEACT_AGGREGATION + 1)
-#define DTRACEAGG_MIN (DTRACEACT_AGGREGATION + 2)
-#define DTRACEAGG_MAX (DTRACEACT_AGGREGATION + 3)
-#define DTRACEAGG_AVG (DTRACEACT_AGGREGATION + 4)
-#define DTRACEAGG_SUM (DTRACEACT_AGGREGATION + 5)
-#define DTRACEAGG_STDDEV (DTRACEACT_AGGREGATION + 6)
-#define DTRACEAGG_QUANTIZE (DTRACEACT_AGGREGATION + 7)
-#define DTRACEAGG_LQUANTIZE (DTRACEACT_AGGREGATION + 8)
-#define DTRACEAGG_LLQUANTIZE (DTRACEACT_AGGREGATION + 9)
#define DTRACE_QUANTIZE_NBUCKETS \
(((sizeof(uint64_t) * NBBY) - 1) * 2 + 1)
diff --git a/libdtrace/dt_aggregate.c b/libdtrace/dt_aggregate.c
index 1b875ea8..4a675366 100644
--- a/libdtrace/dt_aggregate.c
+++ b/libdtrace/dt_aggregate.c
@@ -803,30 +803,30 @@ dt_aggregate_valcmp(const void *lhs, const void *rhs)
raddr = (int64_t *)(uintptr_t)(rdata + rrec->dtrd_offset);
switch (lrec->dtrd_action) {
- case DTRACEAGG_AVG:
+ case DT_AGG_AVG:
rval = dt_aggregate_averagecmp(laddr, raddr);
break;
- case DTRACEAGG_STDDEV:
+ case DT_AGG_STDDEV:
rval = dt_aggregate_stddevcmp(laddr, raddr);
break;
- case DTRACEAGG_QUANTIZE:
+ case DT_AGG_QUANTIZE:
rval = dt_aggregate_quantizedcmp(laddr, raddr);
break;
- case DTRACEAGG_LQUANTIZE:
+ case DT_AGG_LQUANTIZE:
rval = dt_aggregate_lquantizedcmp(laddr, raddr);
break;
- case DTRACEAGG_LLQUANTIZE:
+ case DT_AGG_LLQUANTIZE:
rval = dt_aggregate_llquantizedcmp(laddr, raddr);
break;
- case DTRACEAGG_COUNT:
- case DTRACEAGG_SUM:
- case DTRACEAGG_MIN:
- case DTRACEAGG_MAX:
+ case DT_AGG_COUNT:
+ case DT_AGG_SUM:
+ case DT_AGG_MIN:
+ case DT_AGG_MAX:
rval = dt_aggregate_countcmp(laddr, raddr);
break;
@@ -1094,7 +1094,7 @@ dt_aggwalk_rval(dtrace_hdl_t *dtp, dt_ahashent_t *h, int rval)
size = rec->dtrd_size;
data = &h->dtahe_data;
- if (rec->dtrd_action == DTRACEAGG_LQUANTIZE) {
+ if (rec->dtrd_action == DT_AGG_LQUANTIZE) {
offs = sizeof(uint64_t);
size -= sizeof(uint64_t);
}
diff --git a/libdtrace/dt_cc.c b/libdtrace/dt_cc.c
index 84cd5a9e..e3166647 100644
--- a/libdtrace/dt_cc.c
+++ b/libdtrace/dt_cc.c
@@ -1071,7 +1071,7 @@ dt_compile_agg(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
ap->dtad_kind = DTRACEACT_DIFEXPR;
}
- if (fid->di_id == DTRACEAGG_LQUANTIZE) {
+ if (fid->di_id == DT_AGG_LQUANTIZE) {
/*
* For linear quantization, we have between two and four
* arguments in addition to the expression:
@@ -1206,7 +1206,7 @@ dt_compile_agg(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
argmax = 5;
}
- if (fid->di_id == DTRACEAGG_LLQUANTIZE) {
+ if (fid->di_id == DT_AGG_LLQUANTIZE) {
/*
* For log linear quantization, we have four
* arguments in addition to the expression:
@@ -1388,7 +1388,7 @@ dt_compile_agg(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
argmax = 6;
}
- if (fid->di_id == DTRACEAGG_QUANTIZE) {
+ if (fid->di_id == DT_AGG_QUANTIZE) {
incr = dnp->dn_aggfun->dn_args->dn_list;
argmax = 2;
}
diff --git a/libdtrace/dt_printf.c b/libdtrace/dt_printf.c
index 7e9c0982..f0c09178 100644
--- a/libdtrace/dt_printf.c
+++ b/libdtrace/dt_printf.c
@@ -983,7 +983,7 @@ dt_printf_validate(dt_pfargv_t *pfv, uint_t flags,
* an aggregation result conversion, which -- for all but count() --
* is a signed quantity.
*/
- if (kind != DTRACEAGG_COUNT)
+ if (kind != DT_AGG_COUNT)
aggtype = "int64_t";
else
aggtype = "uint64_t";
--
2.18.4
More information about the DTrace-devel
mailing list