2024-01-15 14:50:52

by Thomas Richter

[permalink] [raw]
Subject: [PATCH] perf test: Fix test case perf script tests on s390

In linux next repo, test case 'perf script tests' fails on s390.
The root case is a command line invocation of perf record with
call-graph information. On s390 only dwarf formatted call-graphs
are supported and only on software events.

Change the command line parameters fors s390.

Output before:
# perf test 89
89: perf script tests : FAILED!
#

Output after:
# perf test 89
89: perf script tests : Ok
#

Fixes: 0dd5041c9a0e ("perf addr_location: Add init/exit/copy functions")
Signed-off-by: Thomas Richter <[email protected]>
Cc: Ian Rogers <[email protected]>
---
tools/perf/tests/shell/script.sh | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/perf/tests/shell/script.sh b/tools/perf/tests/shell/script.sh
index 5ae7bd0031a8..a6a09ef16e06 100755
--- a/tools/perf/tests/shell/script.sh
+++ b/tools/perf/tests/shell/script.sh
@@ -54,7 +54,14 @@ def sample_table(*args):
def call_path_table(*args):
print(f'call_path_table({args}')
_end_of_file_
- perf record -g -o "${perfdatafile}" true
+ case $(uname -m)
+ in s390x)
+ cmd_flags="--call-graph dwarf -e cpu-clock"
+ ;; *)
+ cmd_flags="-g"
+ esac
+
+ perf record $cmd_flags -o "${perfdatafile}" true
perf script -i "${perfdatafile}" -s "${db_test}"
echo "DB test [Success]"
}
--
2.43.0



2024-01-19 21:50:06

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH] perf test: Fix test case perf script tests on s390

Hello,

On Mon, Jan 15, 2024 at 6:50 AM Thomas Richter <[email protected]> wrote:
>
> In linux next repo, test case 'perf script tests' fails on s390.
> The root case is a command line invocation of perf record with
> call-graph information. On s390 only dwarf formatted call-graphs
> are supported and only on software events.
>
> Change the command line parameters fors s390.
>
> Output before:
> # perf test 89
> 89: perf script tests : FAILED!
> #
>
> Output after:
> # perf test 89
> 89: perf script tests : Ok
> #
>
> Fixes: 0dd5041c9a0e ("perf addr_location: Add init/exit/copy functions")
> Signed-off-by: Thomas Richter <[email protected]>
> Cc: Ian Rogers <[email protected]>
> ---
> tools/perf/tests/shell/script.sh | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/tests/shell/script.sh b/tools/perf/tests/shell/script.sh
> index 5ae7bd0031a8..a6a09ef16e06 100755
> --- a/tools/perf/tests/shell/script.sh
> +++ b/tools/perf/tests/shell/script.sh
> @@ -54,7 +54,14 @@ def sample_table(*args):
> def call_path_table(*args):
> print(f'call_path_table({args}')
> _end_of_file_
> - perf record -g -o "${perfdatafile}" true
> + case $(uname -m)
> + in s390x)
> + cmd_flags="--call-graph dwarf -e cpu-clock"
> + ;; *)
> + cmd_flags="-g"
> + esac

I think this is unusual. Maybe something like this?

case $(uname -m) in
s390x)
cmd_flags="...";;
*)
cmd_flags="...";;
esac

Thanks,
Namhyung


> +
> + perf record $cmd_flags -o "${perfdatafile}" true
> perf script -i "${perfdatafile}" -s "${db_test}"
> echo "DB test [Success]"
> }
> --
> 2.43.0
>
>