Re: [PATCH v1 0/8] CSV/JSON metric thresholds, fix printf modifiers

From: Namhyung Kim
Date: Wed Oct 09 2024 - 20:59:46 EST


On Tue, Oct 08, 2024 at 04:40:19PM -0700, Ian Rogers wrote:
> On Tue, Oct 8, 2024 at 3:47 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
> >
> > Hi Ian,
> >
> > On Fri, Oct 04, 2024 at 04:41:12PM -0700, Ian Rogers wrote:
> > > Metric thresholds are being computed for CSV and JSON output but not
> > > displayed. Rename the color that encodes the threshold as enum values
> > > and use to generate string constants in a CSV column or json
> > > dictionary value.
> >
> > IIUC it'd show "good" or "bad" when the metric defines a threshold and
> > show "good", "less good", "nearly bad" or "bad" for the legacy shadow
> > stats? Anyway it's nice to show if the value is good or not.
>
> Correct. I'm open to suggestions for the names. The alternative to
> showing the metric thresholds would be to drop them for CSV and JSON
> output, which would reduce the number of events. With this approach
> the thresholds can still be dropped with --metric-no-threshold.

Ok, I don't have better idea for the naming.

Thanks,
Namhyung

>
> > >
> > > Add printf attribute to functions in color.h that could support
> > > it. Fix bad printf format strings that this detected.
> > >
> > > Ian Rogers (8):
> > > perf color: Add printf format checking and resolve issues
> > > perf stat: Fix/add parameter names for print_metric
> > > perf stat: Display "none" for NaN with metric only json
> > > perf stat: Drop metric-unit if unit is NULL
> > > perf stat: Change color to threshold in print_metric
> > > perf stat: Display metric threshold value in CSV output
> > > perf stat: Add metric-threshold to json output
> > > perf stat: Disable metric thresholds for CSV/JSON metric-only mode
> >
> > Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> >
> > Thanks,
> > Namhyung
> >
> > >
> > > tools/perf/Documentation/perf-stat.txt | 1 +
> > > tools/perf/arch/x86/util/iostat.c | 2 +-
> > > tools/perf/builtin-sched.c | 2 +-
> > > tools/perf/builtin-script.c | 6 +-
> > > tools/perf/builtin-stat.c | 8 ++
> > > tools/perf/builtin-trace.c | 2 +-
> > > .../tests/shell/lib/perf_json_output_lint.py | 5 +-
> > > tools/perf/tests/shell/stat+csv_output.sh | 24 ++--
> > > tools/perf/util/arm-spe.c | 2 +-
> > > tools/perf/util/color.h | 9 +-
> > > tools/perf/util/intel-bts.c | 2 +-
> > > tools/perf/util/intel-pt.c | 2 +-
> > > tools/perf/util/s390-cpumsf.c | 2 +-
> > > tools/perf/util/s390-sample-raw.c | 6 +-
> > > tools/perf/util/stat-display.c | 85 +++++++++---
> > > tools/perf/util/stat-shadow.c | 128 ++++++++++--------
> > > tools/perf/util/stat.h | 16 ++-
> > > 17 files changed, 191 insertions(+), 111 deletions(-)
> > >
> > > --
> > > 2.47.0.rc0.187.ge670bccf7e-goog
> > >