Re: [PATCH] x86/sched/dynamic-ticks: Call newschedule_irq_disable() for scheduling in entry_64.S

From: Steven Rostedt
Date: Thu May 09 2013 - 20:51:36 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/