From: Paul Turner Date: Mon, 15 Nov 2010 23:47:04 +0000 (-0800) Subject: sched: Fix update_cfs_load() synchronization X-Git-Tag: v2.6.38-rc1~489^2~27 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e33078baa4d30ad1d0e46d1f62b9e5a63a3e6ee3;p=pandora-kernel.git sched: Fix update_cfs_load() synchronization Using cfs_rq->nr_running is not sufficient to synchronize update_cfs_load with the put path since nr_running accounting occurs at deactivation. It's also not safe to make the removal decision based on load_avg as this fails with both high periods and low shares. Resolve this by clipping history after 4 periods without activity. Note: the above will always occur from update_shares() since in the last-task-sleep-case that task will still be cfs_rq->curr when update_cfs_load is called. Signed-off-by: Paul Turner Signed-off-by: Peter Zijlstra LKML-Reference: <20101115234937.933428187@google.com> Signed-off-by: Ingo Molnar --- Reading git-diff-tree failed