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)
committerIngo Molnar <mingo@kernel.org>
Wed, 30 May 2012 12:02:16 +0000 (14:02 +0200)
commit5aaa0b7a2ed5b12692c9ffb5222182bd558d3146
tree0334762e9d0e773acf21e61c682f895c25201c89
parent9f646389aa7727a2fd8f9ae6337b92af9cfbc264
sched/nohz: Fix rq->cpu_load calculations some more

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>
include/linux/sched.h
kernel/sched/core.c
kernel/time/tick-sched.c