On Thu, 2013-05-09 at 20:47 -0400, Steven Rostedt wrote: > > > > > + > > > + local_irq_enable(); > > > + __schedule(); > > > > Are you sure it's fine to call __schedule() instead of schedule()? > > I don't know much about the blk work to handle there but it may be > > worth considering. > > Note, this isn't a call to schedule that was made by normal kernel > space. This is very much like a preemption. In fact, it is a preemption > and my first patch used preempt_schedule_irq() instead, but as that's > made for CONFIG_PREEMPT enabled, it seemed a bit hacky to take that out > of that context. > > This is only called when the task is being preempted. But because its > going to user land, its OK. The blk code there is more worried about > something that did some work, set itself to TASK_UNINTERRUPTIBLE and > then called schedule() (think completions). That is, the blk code that > needs to be submitted will be the code that wakes up this task. > > We should never be in anything but TASK_RUNNING when going into user > space.
Maybe I should rename this function to schedule_user() to explicitly show that this is for scheduling when we came from or going to user space. -- Steve -- 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/