git: 1bb8b1d7e190 - main - libdtrace: Fix formatting of messages about drops
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Apr 2025 18:27:11 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=1bb8b1d7e190d75597d31ab87364a058e8ef8c5b
commit 1bb8b1d7e190d75597d31ab87364a058e8ef8c5b
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-04-15 14:03:47 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-04-15 18:26:59 +0000
libdtrace: Fix formatting of messages about drops
dt_oformat_drop() should only be called when in structured output mode.
Reviewed by: Domagoj Stolfa
Fixes: 93f27766a7e1 ("dtrace: Add the 'oformat' libdtrace option")
---
.../opensolaris/lib/libdtrace/common/dt_aggregate.c | 16 ++++++++++------
.../opensolaris/lib/libdtrace/common/dt_consume.c | 19 +++++++++++++------
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c
index 1c3131e74cb0..e5d10ad5ac0a 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c
@@ -472,14 +472,18 @@ dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu)
}
if (buf->dtbd_drops != 0) {
- xo_open_instance("probes");
- dt_oformat_drop(dtp, cpu);
- if (dt_handle_cpudrop(dtp, cpu,
- DTRACEDROP_AGGREGATION, buf->dtbd_drops) == -1) {
+ int error;
+
+ if (dtp->dt_oformat) {
+ xo_open_instance("probes");
+ dt_oformat_drop(dtp, cpu);
+ }
+ error = dt_handle_cpudrop(dtp, cpu, DTRACEDROP_AGGREGATION,
+ buf->dtbd_drops);
+ if (dtp->dt_oformat)
xo_close_instance("probes");
+ if (error != 0)
return (-1);
- }
- xo_close_instance("probes");
}
if (buf->dtbd_size == 0)
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
index a760642c33bb..385c9d78bdfc 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
@@ -3678,10 +3678,13 @@ nextepid:
*/
buf->dtbd_drops = 0;
- xo_open_instance("probes");
- dt_oformat_drop(dtp, cpu);
+ if (dtp->dt_oformat) {
+ xo_open_instance("probes");
+ dt_oformat_drop(dtp, cpu);
+ }
rval = dt_handle_cpudrop(dtp, cpu, DTRACEDROP_PRINCIPAL, drops);
- xo_close_instance("probes");
+ if (dtp->dt_oformat)
+ xo_close_instance("probes");
return (rval);
}
@@ -4187,11 +4190,15 @@ dtrace_consume(dtrace_hdl_t *dtp, FILE *fp,
for (i = 0; i < max_ncpus; i++) {
if (drops[i] != 0) {
int error;
- xo_open_instance("probes");
- dt_oformat_drop(dtp, i);
+
+ if (dtp->dt_oformat) {
+ xo_open_instance("probes");
+ dt_oformat_drop(dtp, i);
+ }
error = dt_handle_cpudrop(dtp, i,
DTRACEDROP_PRINCIPAL, drops[i]);
- xo_close_instance("probes");
+ if (dtp->dt_oformat)
+ xo_close_instance("probes");
if (error != 0)
return (error);
}