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 <[email protected]>
---
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"
ALL_FUNCS="#### all functions enabled ####"
--
2.32.0
On 2/9/22 9:24 AM, Krzysztof Kozlowski 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 <[email protected]>
>
> ---
>
> 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"
>
> ALL_FUNCS="#### all functions enabled ####"
>
>
Change looks good to me.
Reviewed-by: Shuah Khan <[email protected]>
thanks,
-- Shuah
On Wed, 9 Feb 2022 17:24:30 +0100
Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
>
> ---
>
> 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 ####"
>
On 10/02/2022 06:00, Steven Rostedt wrote:
> On Wed, 9 Feb 2022 17:24:30 +0100
> Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
>>
>> ---
>>
>> 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 ?
>
This works as well. I had impression that the test is only about
filtering interface and actual function does not have to hit/trigger.
I'll send v2 with scheduler_tick.
Best regards,
Krzysztof