[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210108134736.GC3592@techsingularity.net>
Date: Fri, 8 Jan 2021 13:47:36 +0000
From: Mel Gorman <mgorman@...hsingularity.net>
To: Qais Yousef <qais.yousef@....com>
Cc: Peter Zijlstra <peterz@...radead.org>,
"Li, Aubrey" <aubrey.li@...ux.intel.com>,
vincent.guittot@...aro.org, linux-kernel@...r.kernel.org,
mingo@...hat.com, juri.lelli@...hat.com,
valentin.schneider@....com, dietmar.eggemann@....com,
rostedt@...dmis.org, bsegall@...gle.com,
tim.c.chen@...ux.intel.com, benbjiang@...il.com
Subject: Re: [RFC][PATCH 1/5] sched/fair: Fix select_idle_cpu()s cost
accounting
On Fri, Jan 08, 2021 at 01:01:10PM +0000, Qais Yousef wrote:
> On 01/08/21 10:27, Mel Gorman wrote:
> > for_each_cpu_wrap(cpu, cpus, target) {
> > - if (available_idle_cpu(cpu) || sched_idle_cpu(cpu))
> > + if (available_idle_cpu(cpu) || sched_idle_cpu(cpu)) {
> > + /* Adjust cost of a successful scan */
> > + loops <<= 2;
> > +
> > break;
> > + }
> >
> > - if (loops >= nr) {
> > + if (++loops >= nr) {
> > cpu = -1;
> > break;
> > }
> > - loops++;
>
> Random (out of the blue) comment.
>
> Now this will increment loops before the comparison/break. ie: we're
> effectively doing one iteration less IIRC. Should loops be initialized to
> 0 instead of 1?
>
Yep, although in practice it'll make little difference except after a
rapid phase change when avg_idle still appears high on a per-rq basis
yet the domain is fully busy with no idle CPUs.
--
Mel Gorman
SUSE Labs
Powered by blists - more mailing lists