[RFT PATCH v2 2/7] perf stat: Save unnecessary print_metric() call
From: Yushan Wang
Date: Thu May 07 2026 - 02:38:36 EST
The patch listed under Fixes removed the other branch of iostat_run, and
changed num to 0 since it is the default behavior of it. But during
iostat_run, default value 1 of num is required to avoid print_metric()
call later.
Set num as 1 to avoid redundant print_metric() call that causes
unaligned blank printed.
Before this patch:
root@localhost$ ./perf stat --iostat=0000:20:0f.0 --timeout 100
Performance counter stats for 'system wide':
port Inbound MWR(MB) Inbound MRD(MB) Inbound CPL(MB) Outbound MWR(MB) Outbound MRD(MB) Outbound CPL(MB)
0000:20:0f.0 0.00 0.00 0.00 0.00 0.00
0.01
0.100138030 seconds time elapsed
After this patch:
root@localhost$ ./perf stat --iostat=0000:20:0f.0 --timeout 100
Performance counter stats for 'system wide':
port Inbound MWR(MB) Inbound MRD(MB) Inbound CPL(MB) Outbound MWR(MB) Outbound MRD(MB) Outbound CPL(MB)
0000:20:0f.0 0.00 0.00 0.00 0.00 0.00 0.01
0.100127590 seconds time elapsed
Fixes: b71f46a6a708 ("perf stat: Remove hard coded shadow metrics")
Signed-off-by: Yushan Wang <wangyushan12@xxxxxxxxxx>
---
tools/perf/util/stat-shadow.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index bc2d44df7baf..0056444523d6 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -326,8 +326,10 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
void *ctxp = out->ctx;
int num = 0;
- if (config->iostat_run)
+ if (config->iostat_run) {
iostat_print_metric(config, evsel, out);
+ num = 1;
+ }
perf_stat__print_shadow_stats_metricgroup(config, evsel, aggr_idx,
&num, NULL, out);
--
2.33.0