Messages in this thread | | | Date | Fri, 11 Jan 2019 16:55:35 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH v3 0/6] Static calls |
| |
On Fri, 11 Jan 2019 15:41:22 -0600 Josh Poimboeuf <jpoimboe@redhat.com> 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
| |