sched: Remove rq->clock coupling from set_task_cpu()
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 27 Nov 2009 13:12:25 +0000 (14:12 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 9 Dec 2009 09:03:03 +0000 (10:03 +0100)
commit5afcdab706d6002cb02b567ba46e650215e694e8
tree015c3fb61dc8a4217bc83927efd7882e7d494d2b
parent970b13bacba14a8cef6f642861947df1d175b0b3
sched: Remove rq->clock coupling from set_task_cpu()

set_task_cpu() should be rq invariant and only touch task state, it
currently fails to do so, which opens up a few races, since not all
callers hold both rq->locks.

Remove the relyance on rq->clock, as any site calling set_task_cpu()
should also do a remote clock update, which should ensure the observed
time between these two cpus is monotonic, as per
kernel/sched_clock.c:sched_clock_remote().

Therefore we can simply remove the clock_offset bits and be happy.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c