Re: [PATCH v3 0/6] Static calls

From: Nadav Amit
Date: Fri Jan 11 2019 - 17:00:03 EST


> On Jan 11, 2019, at 1:55 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> On Fri, 11 Jan 2019 15:41:22 -0600
> Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
>>> I donât see RCU-sched solves the problem if you donât disable preemption. On
>>> a fully preemptable kernel, you can get preempted between the push and the
>>> call (jmp) or before the push. RCU-sched can then finish, and the preempted
>>> task may later jump to a wrong patched-dest.
>>
>> Argh, I misspoke about RCU-sched. Words are hard.
>>
>> I meant synchronize_rcu_tasks(), which is a completely different animal.
>> My understanding is that it waits until all runnable tasks (including
>> preempted tasks) have gotten a chance to run.
>
> Not quite, but does the same thing. It waits for all tasks to either
> schedule voluntarily (not preempted), or be / go into idle, or be /go
> into userspace. In any case, it makes sure code is off of trampolines.
> I use this before freeing trampolines used by ftrace.

Interesting. So my last email is completely wrong.