Always keep a CPU with the tick to handle timekeeping
Ensure irq work use self-IPIs and not hooks on the timer
Revisit the idle load balancing logic to make it working with adaptive tickless kernels.
Handle rq->clock[_task]. I'm currently focusing on this, pending patches coming soon. scheduler_tick() calls update_rq_clock() which keeps it up to date. If we run tickless it's not updated anymore. While many places already call update_rq_clock() to do the update manually already. There are still some that need this call to be added.
Handle update_cpu_load_active() (That part looks scary)
Restart tick when a posix cpu timer is enqueued
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.