Re: [PATCH v2 1/1] perf stat: Add JSON output option.
From: Andi Kleen
Date: Sun Aug 15 2021 - 10:49:54 EST
> CSV output example:
>
> 1.20,msec,task-clock:u,1204272,100.00,0.697,CPUs utilized
> 0,,context-switches:u,1204272,100.00,0.000,/sec
> 0,,cpu-migrations:u,1204272,100.00,0.000,/sec
> 70,,page-faults:u,1204272,100.00,58.126,K/sec
The difficult part of such changes to perf stat is that it has
so many different output modes that all need to be tested.
Unfortunately the unit tests in perf test are not really
enough for it.
I have an older script (attached) that tests a lot of these outputs. It just
exercises them, you still need to check the output manually
Can you check that all these modes work correctly both
with and without json?
-Andi
#!/bin/sh
# test perf stat output combinations with --metric-only
# output has to be manually verified
[ ! -d obj-perf ] && cd ..
set -x
PERF=${PERF:-./obj-perf/perf}
run() {
$PERF stat -a "$@" sleep 2
}
runprog() {
$PERF stat "$@" true
}
run
run -x,
run --per-core
run --per-socket
run -e cycles,instructions
run -dddd
# topdown
# instructions
run -I 500
run -I 500 --per-core
run -I 500 --per-socket
run -I 500 -e cycles,instructions
run -I 500 -dddd
run -I 500 -x,
run -I 500 --per-core -x,
run -I 500 --per-socket -x,
run -I 500 -e cycles,instructions -x,
run -I 500 -dddd -x,
runprog -r3
runprog -r3 -x,
$PERF stat -r3 true
$PERF stat -r3 -x, true
sleep 3 &
$PERF stat --per-thread -p $! sleep 1
$PERF stat --per-thread -t $! sleep 1