Re: [PATCH v2 0/2] fix & prevent the missing preemption disabling

From: 王贇
Date: Tue Oct 12 2021 - 23:33:38 EST




On 2021/10/13 上午11:26, Steven Rostedt wrote:
> Please start a new thread when sending new versions. v2 should not be a
> reply to v1. If you want to reference v1, just add it to the cover
> letter with a link tag:
>
> Link: https://lore.kernel.org/all/8c7de46d-9869-aa5e-2bb9-5dbc2eda395e@xxxxxxxxxxxxxxxxx/

Ok, I'll resend it with link then.

Regards,
Michael Wang


>
> -- Steve
>
>
> On Wed, 13 Oct 2021 11:16:56 +0800
> 王贇 <yun.wang@xxxxxxxxxxxxxxxxx> wrote:
>
>> The testing show that perf_ftrace_function_call() are using smp_processor_id()
>> with preemption enabled, all the checking on CPU could be wrong after preemption.
>>
>> As Peter point out, the section between ftrace_test_recursion_trylock/unlock()
>> pair require the preemption to be disabled as 'Documentation/trace/ftrace-uses.rst'
>> explained, but currently the work is done outside of the helpers.
>>
>> Patch 1/2 will make sure preemption disabled after trylock() succeed,
>> patch 2/2 will do smp_processor_id() checking after trylock to address the
>> issue.
>>
>> Michael Wang (2):
>> ftrace: disable preemption between ftrace_test_recursion_trylock/unlock()
>> ftrace: do CPU checking after preemption disabled
>>
>> arch/csky/kernel/probes/ftrace.c | 2 --
>> arch/parisc/kernel/ftrace.c | 2 --
>> arch/powerpc/kernel/kprobes-ftrace.c | 2 --
>> arch/riscv/kernel/probes/ftrace.c | 2 --
>> arch/x86/kernel/kprobes/ftrace.c | 2 --
>> include/linux/trace_recursion.h | 22 +++++++++++++++++++++-
>> kernel/livepatch/patch.c | 6 ------
>> kernel/trace/trace_event_perf.c | 6 +++---
>> kernel/trace/trace_functions.c | 5 -----
>> 9 files changed, 24 insertions(+), 25 deletions(-)
>>