Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH 3/8] sched/fair: Tweak misfit-related capacity checks | Date | Fri, 05 Feb 2021 16:59:55 +0000 |
| |
On 05/02/21 15:31, Vincent Guittot wrote: > On Thu, 28 Jan 2021 at 19:32, Valentin Schneider > <valentin.schneider@arm.com> wrote: >> >> During load-balance, groups classified as group_misfit_task are filtered >> out if they do not pass >> >> group_smaller_max_cpu_capacity(<candidate group>, <local group>); > > group_smaller_max_cpu_capacity and group_smaller_max_cpu_capacity are > removed in the next patch. Merge this and the next and directly remove > them >
OK.
>> @@ -8253,7 +8260,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd) >> static inline int check_misfit_status(struct rq *rq, struct sched_domain *sd) >> { >> return rq->misfit_task_load && >> - (rq->cpu_capacity_orig < rq->rd->max_cpu_capacity || >> + (capacity_greater(rq->rd->max_cpu_capacity, rq->cpu_capacity_orig) || > > Why do you add a margin here whereas there was no margin before ? >
Comparing capacities without any sort of filter can lead to ping-ponging tasks around (capacity values very easily fluctuate by +/- 1, if not more). I'm guilty of doing two things at once here: replace existing users, and convert callsites that should be existing users. I can split the conversion in a separate patch.
| |