Messages in this thread |  | | From | Vincent Guittot <> | | Date | Thu, 25 Jan 2024 18:44:14 +0100 | | Subject | Re: [PATCH v4 1/2] sched/fair: Check a task has a fitting cpu when updating misfit |
| |
On Wed, 24 Jan 2024 at 23:46, Qais Yousef <qyousef@layalina.io> wrote: > > On 01/23/24 09:32, Vincent Guittot wrote: > > > > > @@ -9583,9 +9630,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 && > > > > - (arch_scale_cpu_capacity(rq->cpu) < rq->rd->max_cpu_capacity || > > > > - check_cpu_capacity(rq, sd)); > > > > + return rq->misfit_task_load && check_cpu_capacity(rq, sd);
Coming back to this: With your change above, misfit can't kick an idle load balance and must wait for the cpu capacity being noticeably reduced by something else
> > > > > > You removed 'arch_scale_cpu_capacity(rq->cpu) < > > > rq->rd->max_cpu_capacity' here. Why? I can see that with the standard > > > setup (max CPU capacity equal 1024) which is what we probably use 100% > > > of the time now. It might get useful again when Vincent will introduce > > > his 'user space system pressure' implementation? > > > > That's interesting because I'm doing the opposite in the user space > > system pressure that I'm preparing: > > I keep something similar to (arch_scale_cpu_capacity(rq->cpu) < > > rq->rd->max_cpu_capacity but I remove check_cpu_capacity(rq, sd) which > > seems to be useless because it's already used earlier in > > nohz_balancer_kick() > > Okay. I need to look at your patches anyway. I can potentially rebase on top of > your series. > > > Cheers > > -- > Qais Yousef
|  |