Re: [PATCH v1] perf test: Add cputype testing to perf stat

From: Arnaldo Carvalho de Melo
Date: Mon May 15 2023 - 08:19:29 EST


Em Fri, May 12, 2023 at 11:34:47PM -0700, Ian Rogers escreveu:
> Check a bogus PMU fails and that a known PMU succeeds. Limit to PMUs
> known cpu, cpu_atom and armv8_pmuv3_0 ones.

Thanks, applied.

- Arnaldo


> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/tests/shell/stat.sh | 44 ++++++++++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index b154fbb15d54..3f1e67795490 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -103,10 +103,54 @@ test_topdown_weak_groups() {
> echo "Topdown weak groups test [Success]"
> }
>
> +test_cputype() {
> + # Test --cputype argument.
> + echo "cputype test"
> +
> + # Bogus PMU should fail.
> + if perf stat --cputype="123" -e instructions true > /dev/null 2>&1
> + then
> + echo "cputype test [Bogus PMU didn't fail]"
> + err=1
> + return
> + fi
> +
> + # Find a known PMU for cputype.
> + pmu=""
> + for i in cpu cpu_atom armv8_pmuv3_0
> + do
> + if test -d "/sys/devices/$i"
> + then
> + pmu="$i"
> + break
> + fi
> + if perf stat -e "$i/instructions/" true > /dev/null 2>&1
> + then
> + pmu="$i"
> + break
> + fi
> + done
> + if test "x$pmu" = "x"
> + then
> + echo "cputype test [Skipped known PMU not found]"
> + return
> + fi
> +
> + # Test running with cputype produces output.
> + if ! perf stat --cputype="$pmu" -e instructions true 2>&1 | grep -E -q "instructions"
> + then
> + echo "cputype test [Failed count missed with given filter]"
> + err=1
> + return
> + fi
> + echo "cputype test [Success]"
> +}
> +
> test_default_stat
> test_stat_record_report
> test_stat_record_script
> test_stat_repeat_weak_groups
> test_topdown_groups
> test_topdown_weak_groups
> +test_cputype
> exit $err
> --
> 2.40.1.606.ga4b1b128d6-goog
>

--

- Arnaldo