]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commit
sched: Move periodic share updates to entity_tick()
authorPaul Turner <pjt@google.com>
Thu, 16 Dec 2010 03:10:17 +0000 (19:10 -0800)
committerIngo Molnar <mingo@elte.hu>
Sun, 19 Dec 2010 15:36:22 +0000 (16:36 +0100)
commit43365bd7ff37979d2afdccbe953299ed64a4649b
treeb90aa8813d0f92cae88bc26604e48dea0ee9f87d
parentca680888d5d0d03862ec311a83c6a1c7a1e00a01
sched: Move periodic share updates to entity_tick()

Long running entities that do not block (dequeue) require periodic updates to
maintain accurate share values.  (Note: group entities with several threads are
quite likely to be non-blocking in many circumstances).

By virtue of being long-running however, we will see entity ticks (otherwise
the required update occurs in dequeue/put and we are done).  Thus we can move
the detection (and associated work) for these updates into the periodic path.

This restores the 'atomicity' of update_curr() with respect to accounting.

Signed-off-by: Paul Turner <pjt@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20101216031038.067028969@google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_fair.c