Messages in this thread | | | Date | Tue, 15 Apr 2014 11:30:04 +0200 | From | Frederic Weisbecker <> | Subject | Re: [Query]: tick-sched: why don't we stop tick when we are running idle task? |
| |
On Mon, Apr 14, 2014 at 02:06:00PM +0200, Peter Zijlstra wrote: > On Mon, Apr 14, 2014 at 05:22:30PM +0530, Viresh Kumar wrote: > > On 14 April 2014 17:17, Peter Zijlstra <peterz@infradead.org> wrote: > > > What causes this tick? I was under the impression that once there's a > > > single task (not doing any syscalls) and the above issues are sorted, no > > > more tick would happen. > > > > This is what Frederic told me earlier: > > > > https://lkml.org/lkml/2014/2/13/238 > > That's a bit of a non-answer. I'm fairly sure its not a gazillion > issues, since the actual scheduler tick doesn't actually do that much. > > So start by enumerating what is actually required.
Ok, I'm a bit buzy with a conference right now but I'm going to summarize that soonish.
> > The 2), which I suppose you're now trying to implement is I think > entirely the wrong way. The tick really assumes it runs local, moving it > to another CPU is insane.
There is probably a few things that assume local calls but last time I checked I had the impression that it was fairly possible to call sched_class::task_tick() remotely. rq is locked, no reference to "current", use rq accessors...
OTOH scheduler_tick() itself definetly requires local calls.
| |