TODO
-
Ensure irq work use self-IPIs and not hooks on the timer tick (per arch property, should be a Kconfig). ARM currently misses this, fix in the way: http://lkml.kernel.org/r/20131018163740.GA21983@codeaurora.org
-
Support rq->cpu_load. Its decaying supports well dynticks idle but doesn't work buzy dynticks. Some attempt to solve that, see http://lkml.kernel.org/r/1371761141-25386-1-git-send-email-fweisbec@gmail.com
-
Update rq->rt_avg decaying
-
Update rq->calc_load_active
-
Revisit the idle load balancing logic to make it working with adaptive tickless kernels.
-
Add some automated debugging checks that ensure we are not dealing with stale rq clock values due to missing update_rq_clock() calls. We have some accessors like rq_clock() and rq_clock_task() that we can fill up with stale timestamp check. We need to mark the scheduler entrypoints that may end up using the rq clock though. This is a broader concern that just full dynticks, of course the periodic tick lowers the impact of a stale clock.
-
We could shut down the tick even when more than one tasks are running using hrtick for preemption. But peterz said it's a bit broken and can be costly due to frequent writes on the hardware clock. That needs testing I think. This may be a win compared to keeping the periodic tick.