Messages in this thread | | | Date | Wed, 9 Jul 2014 20:45:43 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 2/2] sched: Rewrite per entity runnable load average tracking |
| |
On Wed, Jul 09, 2014 at 09:07:53AM +0800, Yuyang Du wrote: > That is chalenging... Can someone (Peter) grant us a lock of the remote rq? :)
Nope :-).. we got rid of that lock for a good reason.
Also, this is one area where I feel performance really trumps correctness, we can fudge the blocked load a little. So the sched_clock_cpu() difference is a strict upper bound on the rq_clock_task() difference (and under 'normal' circumstances shouldn't be much off).
So we could simply use a timestamps from dequeue and one from enqueue, and use that.
As to the remote subtraction, a RMW on another cacheline than the rq->lock one should be good; esp since we don't actually observe the per-rq total often (once per tick or so) I think, no?
The thing is, we do not want to disturb scheduling on whatever cpu the task last ran on if we wake it to another cpu. Taking rq->lock wrecks that for sure. [unhandled content-type:application/pgp-signature] | |