Re: [PATCH 1/2] sched: fix and clean up calculate_imbalance

From: Peter Zijlstra
Date: Tue Jul 29 2014 - 10:53:14 EST


On Tue, Jul 29, 2014 at 04:49:52PM +0200, Peter Zijlstra wrote:
> > @@ -6247,32 +6247,15 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
> > return fix_small_imbalance(env, sds);
> > }
> >
> > - if (!busiest->group_imb) {
> > - /*
> > - * Don't want to pull so many tasks that a group would go idle.
> > - * Except of course for the group_imb case, since then we might
> > - * have to drop below capacity to reach cpu-load equilibrium.
> > - */
> > - load_above_capacity =
> > - (busiest->sum_nr_running - busiest->group_capacity_factor);
> > -
> > - load_above_capacity *= (SCHED_LOAD_SCALE * SCHED_CAPACITY_SCALE);
> > - load_above_capacity /= busiest->group_capacity;
> > - }
>
> I think we want to retain that, esp. for the overloaded case. So that
> wants to be:
>
> if (busiest->sum_nr_running > busiest->group_capacity_factor)
>
> Clearly it doesn't make sense for the !overload case, and we explicitly
> want to avoid it in the imb case.

Ah, wait, I think I see why you want that gone. I was only expecting a
correction fix wrt changing pick_busiest(), not also behaviour changes.

Lemme reconsider.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/