Messages in this thread |  | | | Subject | Re: sched: Performance of Trade workload running inside VM | | From | Peter Zijlstra <> | | Date | Mon, 20 Feb 2012 15:56:30 +0100 |
| |
On Sat, 2012-02-18 at 13:11 +0530, Srivatsa Vaddagiri wrote: > * Peter Zijlstra <a.p.zijlstra@chello.nl> [2012-02-15 18:45:02]:
> > why does your patch sort it etc. > > The patch does result in a hunt for "least" busy cpu when the target cpu > returned by select_idle_sibling() is not idle - thus resulting in better > scheduling latencies for the task (and in turn better benchmark scores). > > Another variant of the patch could be to have select_idle_sibling() look > for any idle cpu that is in same cache domain (rather than looking for a > whole group of cpus to be idle)?
Right, so I looked over select_idle_sibling() again and it made my head hurt :/ I can't immediately tell if its actually doing the right thing or not (it _should_ try and avoid using SMT siblings if possible).
It would be very nice not to have both select_idle_sibling() and SD_BALANCE_WAKE iterate the domain tree. So merging them if at all possible would be goodness I think.
We'd have WAKE_AFFINE to decide which cache domain etc to stuff the task on and then use select_idle_sibling() to find the most appropriate cpu within that cache domain.
There was talk of modifying select_idle_sibling() to also consider the C-state the cpu was in, preferring shallower over deeper C-states where there's choice, this is very similar to what you propose, taking the least loaded cpu when there isn't a proper idle one around.
|  |