Message ID | 542303DF.8010606@arm.com |
---|---|
State | New |
Headers | show |
On 24 September 2014 19:48, Dietmar Eggemann <dietmar.eggemann@arm.com> wrote: > On 23/09/14 17:08, Vincent Guittot wrote: > [snip] > > This review (by PeterZ) during v5 of your patch-set recommended some > renaming (e.g. s/group_has_free_capacity/group_has_capacity and > s/group_out_of_capacity/group_no_capacity as well as reordering of the > parameters which I agree with: > > https://lkml.org/lkml/2014/9/11/706 Ah... you're right, these changes have passed through my seance of renaming > >> >> -/* [snip] >> - if (sgs->group_capacity_factor > sgs->sum_nr_running) >> - sgs->group_has_free_capacity = 1; >> + sgs->group_type = group_classify(group, sgs, env); >> + >> + sgs->group_out_of_capacity = group_is_overloaded(sgs, env); > > In case sgs->group_type is group_overloaded you could set > sgs->group_out_of_capacity to 1 without calling group_is_overloaded again. I prefer to keep sgs->group_out_of_capacity = group_is_overloaded(sgs, env) and use it in group_classify in case of future changes in the classification order Regards, Vincent > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 7cdf271e8e52..52d441c92a4f 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -6037,7 +6037,8 @@ static inline void update_sg_lb_stats(struct > lb_env *env, > > sgs->group_type = group_classify(group, sgs, env); > > - sgs->group_out_of_capacity = group_is_overloaded(sgs, env); > + if (sgs->group_type == group_overloaded) > + sgs->group_out_of_capacity = 1; > } > >> } >> >> /** >> @@ -6198,17 +6163,21 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd > > [...] > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
On 25/09/14 09:35, Vincent Guittot wrote: > On 24 September 2014 19:48, Dietmar Eggemann <dietmar.eggemann@arm.com> wrote: >> On 23/09/14 17:08, Vincent Guittot wrote: >> > > [snip] > >> >> This review (by PeterZ) during v5 of your patch-set recommended some >> renaming (e.g. s/group_has_free_capacity/group_has_capacity and >> s/group_out_of_capacity/group_no_capacity as well as reordering of the >> parameters which I agree with: >> >> https://lkml.org/lkml/2014/9/11/706 > > Ah... you're right, these changes have passed through my seance of renaming What about the ordering of the function parameters in group_has_capacity, group_is_overloaded and group_type group_classify? All the existing *load balance* related functions in fair.c seem to follow this (struct lb_env *env, struct sd_lb_stats *sds, struct sched_group *group, struct sg_lb_stats *sgs) order. > >> >>> >>> -/* > > [snip] > >>> - if (sgs->group_capacity_factor > sgs->sum_nr_running) >>> - sgs->group_has_free_capacity = 1; >>> + sgs->group_type = group_classify(group, sgs, env); >>> + >>> + sgs->group_out_of_capacity = group_is_overloaded(sgs, env); >> >> In case sgs->group_type is group_overloaded you could set >> sgs->group_out_of_capacity to 1 without calling group_is_overloaded again. > > I prefer to keep sgs->group_out_of_capacity = group_is_overloaded(sgs, > env) and use it in group_classify in case of future changes in the > classification order Ok, but than group_is_overloaded is called twice at the end of update_sg_lb_stats with exactly the same result. Looks weird in my traces. > [...] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
On 25 September 2014 21:19, Dietmar Eggemann <dietmar.eggemann@arm.com> wrote: > On 25/09/14 09:35, Vincent Guittot wrote: [snip] >>> >>> In case sgs->group_type is group_overloaded you could set >>> sgs->group_out_of_capacity to 1 without calling group_is_overloaded again. >> >> I prefer to keep sgs->group_out_of_capacity = group_is_overloaded(sgs, >> env) and use it in group_classify in case of future changes in the >> classification order > > Ok, but than group_is_overloaded is called twice at the end of > update_sg_lb_stats with exactly the same result. Looks weird in my traces. sorry i don't catch your point. group_is_overloaded() is called once for group_out_of_capacity which is then used in group_classify so it should be called only once > >> > [...] > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
On 26/09/14 13:39, Vincent Guittot wrote: > On 25 September 2014 21:19, Dietmar Eggemann <dietmar.eggemann@arm.com> wrote: >> On 25/09/14 09:35, Vincent Guittot wrote: > > [snip] > >>>> >>>> In case sgs->group_type is group_overloaded you could set >>>> sgs->group_out_of_capacity to 1 without calling group_is_overloaded again. >>> >>> I prefer to keep sgs->group_out_of_capacity = group_is_overloaded(sgs, >>> env) and use it in group_classify in case of future changes in the >>> classification order >> >> Ok, but than group_is_overloaded is called twice at the end of >> update_sg_lb_stats with exactly the same result. Looks weird in my traces. > > sorry i don't catch your point. > group_is_overloaded() is called once for group_out_of_capacity which > is then used in group_classify so it should be called only once You're right, I made a mistake in my local setup while replacing this patch with the new version. Problem doesn't exist any more. > >> >>> >> [...] >> >> > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 7cdf271e8e52..52d441c92a4f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6037,7 +6037,8 @@ static inline void update_sg_lb_stats(struct lb_env *env, sgs->group_type = group_classify(group, sgs, env); - sgs->group_out_of_capacity = group_is_overloaded(sgs, env); + if (sgs->group_type == group_overloaded) + sgs->group_out_of_capacity = 1; }