On 07/14/2014 07:53 PM, Steven Rostedt wrote: > On Mon, 14 Jul 2014 19:09:48 -0500 > Corey Minyard <cminyard@xxxxxxxxxx> wrote: > >> Can we get: >> >> tracing-use-migrate_disable-to-prevent-beeing-pushed.patch > Sure except that patch is buggy: > > - preempt_disable(); > + migrate_disable(); > /* The update must run on the CPU that is being updated. */ > if (cpu_id == smp_processor_id() || !cpu_online(cpu_id)) > rb_update_pages(cpu_buffer); > else { > - /* > - * Can not disable preemption for schedule_work_on() > - * on PREEMPT_RT. > - */ > - preempt_enable(); > schedule_work_on(cpu_id, > &cpu_buffer->update_pages_work); > wait_for_completion(&cpu_buffer->update_done); > - preempt_disable(); > } > - preempt_enable(); > + migrate_enable(); > > migrate_disable() on non-PREEMPT_RT is preempt_disable(). You can't > call wait_or_completion with preemption disabled. > > When that gets fixed in mainline -rt, I'll add it to the stable > branches too. I originally did a patch that just always did the else clause (the schedule_work_on() and wait_for_completion()) on all CPUs. That seemed to work just fine and simplifies the code a bit and gets rid of all the preempt/migrate calls. You could try that approach, or I could submit something if you liked. -corey > > -- Steve > > > >> into 3.10, also? >> -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html