Thread (66 messages) 66 messages, 8 authors, 2014-07-18

[PATCH v3 07/12] sched: test the cpu's capacity in wake affine

From: vincent.guittot@linaro.org (Vincent Guittot)
Date: 2014-07-10 13:58:42
Also in: lkml

On 10 July 2014 13:06, Peter Zijlstra [off-list ref] wrote:
On Mon, Jun 30, 2014 at 06:05:38PM +0200, Vincent Guittot wrote:
quoted
Currently the task always wakes affine on this_cpu if the latter is idle.
Before waking up the task on this_cpu, we check that this_cpu capacity is not
significantly reduced because of RT tasks or irq activity.

Use case where the number of irq and/or the time spent under irq is important
will take benefit of this because the task that is woken up by irq or softirq
will not use the same CPU than irq (and softirq) but a idle one which share
its cache.
The above, doesn't seem to explain:
quoted
+     } else if (!(sd->flags & SD_SHARE_PKG_RESOURCES)) {
+             this_eff_load = 0;
+     }
+
+     balanced = this_eff_load <= prev_eff_load;
this. Why would you unconditionally allow wake_affine across cache
domains?
The current policy is to use this_cpu if this_load <= 0. I want to
keep the current wake affine policy for all sched_domain that doesn't
share cache so if the involved CPUs don't share cache, I clear
this_eff_load to force balanced to be true. But when CPUs share their
cache,  we not only look at idleness but also@available capacity of
prev and local CPUs.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help