On Tue, 11 Jun 2024 20:17:19 +0530 Naveen N Rao <nav...@kernel.org> wrote:
> > I know it's very unlikely, but in theory, I think the race exists. > > I *think* you are assuming that we will be patching back the 'stw' Yes, that was what I was assuming :-p > instruction here? So, there could be an issue if a cpu has executed the > nop instead of 'stw' and then sees the call to _mcount(). > > But, we don't patch back the 'stw' instruction. That is instead done as > part of ftrace_caller(), along with setting up an additional stack frame > to ensure reliable stack unwinding. Commit 41a506ef71eb > ("powerpc/ftrace: Create a dummy stackframe to fix stack unwind") has > more details. > > The primary motivation for this patch is to address differences in the > function profile sequence with various toolchains. Since commit > 0f71dcfb4aef ("powerpc/ftrace: Add support for > -fpatchable-function-entry"), we use the same two-instruction profile > sequence across 32-bit and 64-bit powerpc: > mflr r0 > bl ftrace_caller > > This has also been true on 64-bit powerpc with -mprofile-kernel, except > the very early versions of gcc that supported that option (gcc v5). > > On 32-bit powerpc, we used to use the three instruction sequence before > support for -fpatchable-function-entry was introduced. > > In this patch, we move all toolchain variants to use the two-instruction > sequence for consistency. OK, if you are not patching that back, then all should be good. -- Steve