[PATCH] perf/test: fix perf ftrace test on s390

Thomas Richter posted 1 patch 2 weeks, 2 days ago
There is a newer version of this series
tools/perf/tests/shell/ftrace.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
[PATCH] perf/test: fix perf ftrace test on s390
Posted by Thomas Richter 2 weeks, 2 days ago
On s390 the perf test case ftrace sometimes fails as follows:

  # ./perf test ftrace
  79: perf ftrace tests    : FAILED!
  #

The failure depends on the kernel .config file. Some configurarions
always work fine, some do not.
To achieve success for all our tested kernel configurations, enlarge
the buffer to store the traces complete without wrapping.
The default buffer size is too small  for all kernel configurations.
Set the buffer size of /sys/kernel/tracing/buffer_size_kb to 16 MB

Output after:
  # ./perf test ftrace
  79: perf ftrace tests     : Ok
  #

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Suggested-by: Sven Schnelle <svens@linux.ibm.com>
---
 tools/perf/tests/shell/ftrace.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/perf/tests/shell/ftrace.sh b/tools/perf/tests/shell/ftrace.sh
index a6ee740f0d7e..742d6b8f34d3 100755
--- a/tools/perf/tests/shell/ftrace.sh
+++ b/tools/perf/tests/shell/ftrace.sh
@@ -80,10 +80,21 @@ test_ftrace_profile() {
     echo "perf ftrace profile test  [Success]"
 }
 
+if [ "$(uname -m)" = "s390x" ]
+then
+	ftrace_size=$(cat /sys/kernel/tracing/buffer_size_kb)
+	echo 16384 > /sys/kernel/tracing/buffer_size_kb
+fi
+
 test_ftrace_list
 test_ftrace_trace
 test_ftrace_latency
 test_ftrace_profile
 
+if [ "$(uname -m)" = "s390x" ]
+then
+	echo $ftrace_size > /sys/kernel/tracing/buffer_size_kb
+fi
+
 cleanup
 exit 0
-- 
2.47.0
Re: [PATCH] perf/test: fix perf ftrace test on s390
Posted by Namhyung Kim 2 weeks, 2 days ago
On Thu, Nov 07, 2024 at 01:33:43PM +0100, Thomas Richter wrote:
> On s390 the perf test case ftrace sometimes fails as follows:
> 
>   # ./perf test ftrace
>   79: perf ftrace tests    : FAILED!
>   #
> 
> The failure depends on the kernel .config file. Some configurarions
> always work fine, some do not.

Which test do you fail?  ftrace trace or profile?  I don't think it's
gonna be a problem for ftrace latency.


> To achieve success for all our tested kernel configurations, enlarge
> the buffer to store the traces complete without wrapping.
> The default buffer size is too small  for all kernel configurations.
> Set the buffer size of /sys/kernel/tracing/buffer_size_kb to 16 MB

Actually you can use -m 16M option for perf ftrace trace and perf ftrace
profile.  Then you don't need to care about restoring the original size.

Thanks,
Namhyung

> 
> Output after:
>   # ./perf test ftrace
>   79: perf ftrace tests     : Ok
>   #
> 
> Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
> Suggested-by: Sven Schnelle <svens@linux.ibm.com>
> ---
>  tools/perf/tests/shell/ftrace.sh | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/tools/perf/tests/shell/ftrace.sh b/tools/perf/tests/shell/ftrace.sh
> index a6ee740f0d7e..742d6b8f34d3 100755
> --- a/tools/perf/tests/shell/ftrace.sh
> +++ b/tools/perf/tests/shell/ftrace.sh
> @@ -80,10 +80,21 @@ test_ftrace_profile() {
>      echo "perf ftrace profile test  [Success]"
>  }
>  
> +if [ "$(uname -m)" = "s390x" ]
> +then
> +	ftrace_size=$(cat /sys/kernel/tracing/buffer_size_kb)
> +	echo 16384 > /sys/kernel/tracing/buffer_size_kb
> +fi
> +
>  test_ftrace_list
>  test_ftrace_trace
>  test_ftrace_latency
>  test_ftrace_profile
>  
> +if [ "$(uname -m)" = "s390x" ]
> +then
> +	echo $ftrace_size > /sys/kernel/tracing/buffer_size_kb
> +fi
> +
>  cleanup
>  exit 0
> -- 
> 2.47.0
>
Re: [PATCH] perf/test: fix perf ftrace test on s390
Posted by Sven Schnelle 2 weeks, 1 day ago
Namhyung Kim <namhyung@kernel.org> writes:

> On Thu, Nov 07, 2024 at 01:33:43PM +0100, Thomas Richter wrote:
>> On s390 the perf test case ftrace sometimes fails as follows:
>> 
>>   # ./perf test ftrace
>>   79: perf ftrace tests    : FAILED!
>>   #
>> 
>> The failure depends on the kernel .config file. Some configurarions
>> always work fine, some do not.
>
> Which test do you fail?  ftrace trace or profile?  I don't think it's
> gonna be a problem for ftrace latency.


The ftrace profile test failed, because the ring buffer was not large
enough, and some lines (especially the interesting ones with nanosleep
in it) where dropped.

>
>> To achieve success for all our tested kernel configurations, enlarge
>> the buffer to store the traces complete without wrapping.
>> The default buffer size is too small  for all kernel configurations.
>> Set the buffer size of /sys/kernel/tracing/buffer_size_kb to 16 MB
>
> Actually you can use -m 16M option for perf ftrace trace and perf ftrace
> profile.  Then you don't need to care about restoring the original size.

Ok, thanks. I leave it to Thomas to decide whether he wants to add this
option to the CI run.

Thanks!