[v2] perf test: Fix test case perf script tests on s390

Message ID 20240122095955.2647989-1-tmricht@linux.ibm.com
State New
Headers
Series [v2] perf test: Fix test case perf script tests on s390 |

Commit Message

Thomas Richter Jan. 22, 2024, 9:59 a.m. UTC
  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 <tmricht@linux.ibm.com>
Cc: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/shell/script.sh | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
  

Comments

Ian Rogers Jan. 23, 2024, 5:42 p.m. UTC | #1
On Mon, Jan 22, 2024 at 2:00 AM Thomas Richter <tmricht@linux.ibm.com> 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 <tmricht@linux.ibm.com>
> Cc: Ian Rogers <irogers@google.com>

Thanks Thomas!
Reviewed-by: Ian Rogers <irogers@google.com>

> ---
>  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..2973adab445d 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
>
>
  

Patch

diff --git a/tools/perf/tests/shell/script.sh b/tools/perf/tests/shell/script.sh
index 5ae7bd0031a8..2973adab445d 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]"
 }