Re: [PATCH v7 0/2] JSON output for perf stat
From: Namhyung Kim
Date: Mon Aug 08 2022 - 17:55:57 EST
Hi Ian,
On Fri, Aug 5, 2022 at 1:01 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> Parsing the CSV or text output of perf stat can be problematic when
> new output is added (columns in CSV format). JSON names values and
> simplifies the job of parsing. Add a JSON output option to perf-stat
> then add unit test that parses and validates the output.
>
> This is a resend of two v2 patches:
> https://lore.kernel.org/lkml/20210813220754.2104922-1-cjense@xxxxxxxxxx/
> https://lore.kernel.org/lkml/20210813220936.2105426-1-cjense@xxxxxxxxxx/
> with a few formatting changes and improvements to the linter.
>
> v7. Weakens a test and adds a Makefile.perf change Suggested-by:
> Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>.
>
> v6. Is a rebase.
>
> v5. Drops the merged CSV check, fixes a json test issue found by
> Arnaldo and a typo.
>
> v4. Does some minor fixes to the json linter.
>
> v3. There is some tidy up of CSV code including a potential memory
> over run in the os.nfields set up caught by sanitizers. To
> facilitate this an AGGR_MAX value is added. v3 also adds the CSV
> testing.
>
> v2. Fixes the system wide no aggregation test to not run if the
> paranoia is wrong. It also makes the counter-value check handle
> the "<not counted>" and "<not supported>" cases.
>
> Claire Jensen (2):
> perf stat: Add JSON output option
> perf test: Json format checking
I'd really like to clean up the perf stat output code as it's already hard
to deal with.. Let me do that after adding this. So,
Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Thanks,
Namhyung
>
> tools/perf/Documentation/perf-stat.txt | 21 +
> tools/perf/Makefile.perf | 3 +-
> tools/perf/builtin-stat.c | 6 +
> .../tests/shell/lib/perf_json_output_lint.py | 96 +++++
> tools/perf/tests/shell/stat+json_output.sh | 147 +++++++
> tools/perf/util/stat-display.c | 383 +++++++++++++-----
> tools/perf/util/stat.c | 1 +
> tools/perf/util/stat.h | 2 +
> 8 files changed, 552 insertions(+), 107 deletions(-)
> create mode 100644 tools/perf/tests/shell/lib/perf_json_output_lint.py
> create mode 100755 tools/perf/tests/shell/stat+json_output.sh
>
> --
> 2.37.1.559.g78731f0fdb-goog
>