On Tue, Jun 04, 2013 at 08:16:29AM -0400, Steven Rostedt wrote: > On Tue, 2013-06-04 at 14:09 +0200, Frederic Weisbecker wrote: > > > > > +/** > > > + * preempt_schedule_context - preempt_schedule called by tracing > > > + * > > > + * The tracing infrastructure uses preempt_enable_notrace to prevent > > > + * recursion and tracing preempt enabling caused by the tracing > > > + * infrastructure itself. But as tracing can happen in areas coming > > > + * from userspace or just about to enter userspace, a preempt enable > > > + * can occur before user_exit() is called. This will cause the scheduler > > > + * to be called when the system is still in usermode. > > > + * > > > + * To prevent this, the preempt_enable_notrace will use this function > > > + * instead of preempt_schedule() to exit user context if needed before > > > + * calling the scheduler. > > > + */ > > > +void __sched notrace preempt_schedule_context(void) > > > +{ > > > + struct thread_info *ti = current_thread_info(); > > > + enum ctx_state prev_ctx; > > > + > > > + if (likely(ti->preempt_count || irqs_disabled())) > > > + return; > > > > or: > > if (!preemptible()) > > return; > > Sure, but this is a cut and paste from preempt_schedule(). If I make > that change here, I would want to make that there too. > > Peter, should I use !preemptible() or keep it like preempt_schedule() > and make a clean up change for 3.11?
That seem to indeed make sense to use it in preempt_schedule() as well. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/