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:
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.