sched/nohz: Fix rq->cpu_load calculations some more
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 17 May 2012 15:15:29 +0000 (17:15 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 2 Aug 2012 13:37:38 +0000 (14:37 +0100)
commitc812fe636b6e1e3b3b409b316157f56054252e25
treeef06d788954bff0a51fb816c600e8364fe938878
parent1217fd87cfd53eab752837f19386e0a5594719d9
sched/nohz: Fix rq->cpu_load calculations some more

commit 5aaa0b7a2ed5b12692c9ffb5222182bd558d3146 upstream.

Follow up on commit 556061b00 ("sched/nohz: Fix rq->cpu_load[]
calculations") since while that fixed the busy case it regressed the
mostly idle case.

Add a callback from the nohz exit to also age the rq->cpu_load[]
array. This closes the hole where either there was no nohz load
balance pass during the nohz, or there was a 'significant' amount of
idle time between the last nohz balance and the nohz exit.

So we'll update unconditionally from the tick to not insert any
accidental 0 load periods while busy, and we try and catch up from
nohz idle balance and nohz exit. Both these are still prone to missing
a jiffy, but that has always been the case.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: pjt@google.com
Cc: Venkatesh Pallipadi <venki@google.com>
Link: http://lkml.kernel.org/n/tip-kt0trz0apodbf84ucjfdbr1a@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
[bwh: Backported to 3.2: adjust filenames and context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
include/linux/sched.h
kernel/sched.c
kernel/time/tick-sched.c