Re: [PATCH] selftests/ftrace: Do not trace do_softirq because of PREEMPT_RT

From: Steven Rostedt
Date: Thu Feb 10 2022 - 00:00:13 EST


On Wed, 9 Feb 2022 17:24:30 +0100
Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote:

> The PREEMPT_RT patchset does not use soft IRQs thus trying to filter for
> do_softirq fails for such kernel:
>
> echo do_softirq
> ftracetest: 81: echo: echo: I/O error
>
> Choose some other externally visible function for the test.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
>
> ---
>
> I understand that the failure does not exist on mainline kernel (only
> with PREEMPT_RT patchset) but the change does not harm it.
>
> If it is not suitable alone, please consider it for RT patchset.
> ---
> .../selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> index e96e279e0533..1d0c7601865f 100644
> --- a/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> +++ b/tools/testing/selftests/ftrace/test.d/ftrace/func_set_ftrace_file.tc
> @@ -19,7 +19,7 @@ fail() { # mesg
>
> FILTER=set_ftrace_filter
> FUNC1="schedule"
> -FUNC2="do_softirq"
> +FUNC2="_printk"

The problem with the above, is that it is not guaranteed to trigger (and
probably will not), where as the do_softirq is. The filtering is suppose to
trace something that actually happens.

How about using: scheduler_tick ?

-- Steve


>
> ALL_FUNCS="#### all functions enabled ####"
>