Re: [PATCH] perf test: Add ARM SPE system wide test

From: German Gomez
Date: Thu Jun 16 2022 - 06:13:00 EST


Thanks for the patch, Namhyung

On 15/06/2022 20:07, Namhyung Kim wrote:
> In the past it had a problem not setting the pid/tid on the sample
> correctly when system-wide mode is used. Although it's fixed now it'd
> be nice if we have a test case for it.
>
> Cc: German Gomez <german.gomez@xxxxxxx>
> Cc: Leo Yan <leo.yan@xxxxxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/tests/shell/test_arm_spe.sh | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/tools/perf/tests/shell/test_arm_spe.sh b/tools/perf/tests/shell/test_arm_spe.sh
> index e59044edc406..b9c588ae393b 100755
> --- a/tools/perf/tests/shell/test_arm_spe.sh
> +++ b/tools/perf/tests/shell/test_arm_spe.sh
> @@ -23,6 +23,7 @@ glb_err=0
> cleanup_files()
> {
> rm -f ${perfdata}
> + rm -f ${perfdata}.old
> exit $glb_err
> }
>
> @@ -85,5 +86,19 @@ arm_spe_snapshot_test() {
> arm_spe_report "SPE snapshot testing" $err
> }
>
> +arm_spe_system_wide_test() {
> + echo "Recording trace with system-wide mode $perfdata"
> + perf record -o ${perfdata} -e arm_spe// -a \
> + -- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1
> +

Should we skip if we don't have privileges for CPU tracing? (attached diff)

German

> + perf_script_samples dd &&
> + perf_report_samples dd
> +
> + err=$?
> + arm_spe_report "SPE system-wide testing" $err
> +}
> +
> arm_spe_snapshot_test
> +arm_spe_system_wide_test
> +
> exit $glb_err
diff --git a/tools/perf/tests/shell/test_arm_spe.sh b/tools/perf/tests/shell/test_arm_spe.sh
index b9c588ae3..962841a51 100755
--- a/tools/perf/tests/shell/test_arm_spe.sh
+++ b/tools/perf/tests/shell/test_arm_spe.sh
@@ -30,11 +30,13 @@ cleanup_files()
trap cleanup_files exit term int

arm_spe_report() {
- if [ $2 != 0 ]; then
+ if [ $2 = 0 ]; then
+ echo "$1: PASS"
+ elif [ $2 = 2 ]; then
+ echo "$1: SKIPPED"
+ else
echo "$1: FAIL"
glb_err=$2
- else
- echo "$1: PASS"
fi
}

@@ -91,6 +93,11 @@ arm_spe_system_wide_test() {
perf record -o ${perfdata} -e arm_spe// -a \
-- dd if=/dev/zero of=/dev/null count=100000 > /dev/null 2>&1

+ if [ $? != 0 ]; then
+ arm_spe_report "SPE system-wide testing" 2
+ return
+ fi
+
perf_script_samples dd &&
perf_report_samples dd