Re: [PATCH 1/2] ftrace/selftests: workaround cgroup RT scheduling issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu,  6 Feb 2020 15:09:19 +0000
Alan Maguire <alan.maguire@xxxxxxxxxx> wrote:

> wakeup_rt.tc and wakeup.tc tests in tracers/ subdirectory
> fail due to the chrt command returning:
> 
>  chrt: failed to set pid 0's policy: Operation not permitted.
> 
> To work around this, temporarily disable grout RT scheduling
> during ftracetest execution.  Restore original value on
> test run completion.  With these changes in place, both
> tests consistently pass.

OK, this looks good to me.

Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Thanks!

> 
> Fixes: c575dea2c1a5 ("selftests/ftrace: Add wakeup_rt tracer testcase")
> Fixes: c1edd060b413 ("selftests/ftrace: Add wakeup tracer testcase")
> Signed-off-by: Alan Maguire <alan.maguire@xxxxxxxxxx>
> ---
>  tools/testing/selftests/ftrace/ftracetest | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> index 063ecb2..3207bbf 100755
> --- a/tools/testing/selftests/ftrace/ftracetest
> +++ b/tools/testing/selftests/ftrace/ftracetest
> @@ -29,8 +29,26 @@ err_ret=1
>  # kselftest skip code is 4
>  err_skip=4
>  
> +# cgroup RT scheduling prevents chrt commands from succeeding, which
> +# induces failures in test wakeup tests.  Disable for the duration of
> +# the tests.
> +sched_rt_runtime=$(sysctl -n kernel.sched_rt_runtime_us)

OK, but can you 

> +
> +set_sysctl() {
> +  sysctl -qw ${1}=${2} >/dev/null 2>&1
> +}
> +
> +setup() {
> +  set_sysctl kernel.sched_rt_runtime_us -1
> +}
> +
> +cleanup() {
> +  set_sysctl kernel.sched_rt_runtime_us $sched_rt_runtime
> +}
> +
>  errexit() { # message
>    echo "Error: $1" 1>&2
> +  cleanup
>    exit $err_ret
>  }
>  
> @@ -39,6 +57,8 @@ if [ `id -u` -ne 0 ]; then
>    errexit "this must be run by root user"
>  fi
>  
> +setup
> +
>  # Utilities
>  absdir() { # file_path
>    (cd `dirname $1`; pwd)
> @@ -235,6 +255,7 @@ TOTAL_RESULT=0
>  
>  INSTANCE=
>  CASENO=0
> +
>  testcase() { # testfile
>    CASENO=$((CASENO+1))
>    desc=`grep "^#[ \t]*description:" $1 | cut -f2 -d:`
> @@ -406,5 +427,7 @@ prlog "# of unsupported: " `echo $UNSUPPORTED_CASES | wc -w`
>  prlog "# of xfailed: " `echo $XFAILED_CASES | wc -w`
>  prlog "# of undefined(test bug): " `echo $UNDEFINED_CASES | wc -w`
>  
> +cleanup
> +
>  # if no error, return 0
>  exit $TOTAL_RESULT
> -- 
> 1.8.3.1
> 


-- 
Masami Hiramatsu <mhiramat@xxxxxxxxxx>



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux