Re: [PATCH v4 14/18] static_call: Add static_cond_call()
From: Peter Zijlstra
Date: Wed May 06 2020 - 12:19:28 EST
On Wed, May 06, 2020 at 10:01:12AM -0400, Mathieu Desnoyers wrote:
> ----- On May 6, 2020, at 9:55 AM, Peter Zijlstra peterz@xxxxxxxxxxxxx wrote:
>
> > On Tue, May 05, 2020 at 04:27:44PM -0400, Mathieu Desnoyers wrote:
> >> Actually, if the goal is to do code patching of the call, I wonder
> >> what makes it OK to "guess" all the call patterns generated by the compiler ?
> >
> > We're not guessing, have have objtool read the compiler output and
> > record the location for us. The compiler can generate whatever it likes.
>
> So is the plan to adapt objtool if future compilers change the generated
> instruction patterns ?
If needed, sure. I don't really see what a compiler can do differently
though.
objtool looks for:
JMP/CALL __SCT__##foo
and writes a .static_call_sites table entry for it. Anything else we
can't rewrite anyway and will have to keep relying on the trampoline
working (which we also update, so that's fine).