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.
Add some automated debugging checks that ensure we are not dealing with stale rq clock values due to missing update_[nohz_]rq_clock() calls. This could be done by using accessors like rq_clock() and rq_clock_task() that check that rq->clock value is not too far from sched_clock_cpu() if CONFIG_DEBUG_SCHED. That's would be a bit heuristic but better than nothing.
Handle update_cpu_load_active() (I'm pretty scared of that part)
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.