Messages in this thread | | | Date | Fri, 25 Jul 2014 18:05:49 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] sched: make update_sd_pick_busiest return true on a busier sd |
| |
On Fri, Jul 25, 2014 at 11:45:02AM -0400, Rik van Riel wrote: > > So for !ASYM the code is effectively: > > > > return sgs->avg_load > sds->busiest_stat.avg_load; > > > > I'd like to at least add a clause that makes overloaded groups > > prioritized over !overloaded groups. > > > > Also, like we found earlier, calculate_imbalance() relies on the > > sum_nr_running > group_capacity_factor thing, which you've just > > 'wrecked', so we'd need an update to that part too. > > I guess that would mean update_sd_pick_busiest would look like > this for the !ASYM case: > > 1) remembering whether busiest is overloaded > > 2) if (sgs->busiest_stat.overloaded && !sgs->overloaded) > return false; > > 3) if (sgs->avg_load > sds->busiest_stat.avg_load) > return true;
Right. So the situation I was worried about is where we have say 8 +nice tasks in one group and 2 -nice in another. So the group with 2 tasks can actually be 'heavier' but not fully utilized. In that case we want to pull tasks from the lighter but overloaded group. [unhandled content-type:application/pgp-signature] | |