Paul Turner f07333bf6e sched: Avoid expensive initial update_cfs_load()
Since cfs->{load_stamp,load_last} are zero-initalized the initial load update
will consider the delta to be 'since the beginning of time'.

This results in a lot of pointless divisions to bring this large period to be
within the sysctl_sched_shares_window.

Fix this by initializing load_stamp to be 1 at cfs_rq initialization, this
allows for an initial load_stamp > load_last which then lets standard idle
truncation proceed.

We avoid spinning (and slightly improve consistency) by fixing delta to be
[period - 1] in this path resulting in a slightly more predictable shares ramp.
(Previously the amount of idle time preserved by the overflow would range between
[period/2,period-1].)

Signed-off-by: Paul Turner <pjt@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20110122044852.102126037@google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-01-26 12:33:19 +01:00
..
2010-12-22 18:57:02 +01:00
2011-01-21 11:55:31 +01:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2010-10-30 01:42:19 -04:00
2010-11-03 13:49:58 -04:00
2010-10-30 01:42:19 -04:00
2010-10-30 08:45:43 -04:00
2010-10-29 04:17:06 -04:00
2009-09-18 09:48:52 -07:00
2011-01-13 17:32:43 -08:00
2010-12-16 11:36:43 +01:00
2010-11-01 15:38:34 -04:00
2010-10-01 10:50:58 -07:00
2010-08-19 17:18:02 -07:00
2010-11-18 13:27:46 +01:00
2011-01-13 08:03:18 -08:00
2009-09-23 18:13:10 -07:00
2010-12-29 11:31:38 -08:00
2009-06-18 13:03:55 -07:00