]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
sched/core: Rework rq->clock update skips
authorPeter Zijlstra <peterz@infradead.org>
Mon, 5 Jan 2015 10:18:11 +0000 (11:18 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 14 Jan 2015 12:34:20 +0000 (13:34 +0100)
commit9edfbfed3f544a7830d99b341f0c175995a02950
tree58e117b481cc0fdfd9f4595d3fa73e66c689547a
parentcebde6d681aa45f96111cfcffc1544cf2a0454ff
sched/core: Rework rq->clock update skips

The original purpose of rq::skip_clock_update was to avoid 'costly' clock
updates for back to back wakeup-preempt pairs. The big problem with it
has always been that the rq variable is unaware of the context and
causes indiscrimiate clock skips.

Rework the entire thing and create a sense of context by only allowing
schedule() to skip clock updates. (XXX can we measure the cost of the
added store?)

By ensuring only schedule can ever skip an update, we guarantee we're
never more than 1 tick behind on the update.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: umgwanakikbuti@gmail.com
Link: http://lkml.kernel.org/r/20150105103554.432381549@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/core.c
kernel/sched/fair.c
kernel/sched/rt.c
kernel/sched/sched.h