Re: [PATCH v3 0/6] Static calls

From: Steven Rostedt
Date: Fri Jan 11 2019 - 16:55:41 EST


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.

-- Steve