On Fri, Dec 22, 2017 at 09:42:47PM +0100, Peter Zijlstra wrote: > On Fri, Dec 22, 2017 at 07:56:29PM +0100, Peter Zijlstra wrote: > > Right; but I figured we'd try and do it 'right' and see how horrible it > > is before we try and do funny things. > > So now it should have a 32ms tick for up to .5s when the system goes > completely idle. > > No idea how bad that is..
Does it mean that the 32ms tick will keep going forever if the system doesn't go completely idle? Some tiny background task or a slightly bigger one with a longer period? Do we actually care about stale values if the system is completely idle? Instead of hacking select_task_rq_fair() to kick off a stats update as Vincent already proposed, why can't we just modify Brendan's CPU_NEWLY_IDLE proposal to do a stats update from idle_balance() every 32ms regardless of whether we need to load-balance? This way we should get updates if there is anything running, we don't touch the wake-up path, we don't cause any additional wake-ups, and we don't need a timer. What am I missing?

