> On Jan 11, 2019, at 1:55 PM, Steven Rostedt <rost...@goodmis.org> wrote: > > On Fri, 11 Jan 2019 15:41:22 -0600 > Josh Poimboeuf <jpoim...@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.
Interesting. So my last email is completely wrong.