Message ID | 1a8e8d73-b508-f90b-0d82-eb2da45a720e@linux.alibaba.com (mailing list archive) |
---|---|
Headers | show |
Series | fix & prevent the missing preemption disabling | expand |
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@linux.alibaba.com/ -- Steve On Wed, 13 Oct 2021 11:16:56 +0800 王贇 <yun.wang@linux.alibaba.com> 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(-) >
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@linux.alibaba.com/ Ok, I'll resend it with link then. Regards, Michael Wang > > -- Steve > > > On Wed, 13 Oct 2021 11:16:56 +0800 > 王贇 <yun.wang@linux.alibaba.com> 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(-) >>