[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170426222744.GA9616@wtj.duckdns.org>
Date: Wed, 26 Apr 2017 15:27:44 -0700
From: Tejun Heo <tj@...nel.org>
To: Vincent Guittot <vincent.guittot@...aro.org>
Cc: Ingo Molnar <mingo@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Mike Galbraith <efault@....de>, Paul Turner <pjt@...gle.com>,
Chris Mason <clm@...com>, kernel-team@...com
Subject: Re: [PATCH 1/2] sched/fair: Fix how load gets propagated from cfs_rq
to its sched_entity
Hello, Vincent.
On Wed, Apr 26, 2017 at 06:14:17PM +0200, Vincent Guittot wrote:
> > + if (gcfs_rq->load.weight) {
> > + long shares = calc_cfs_shares(gcfs_rq, gcfs_rq->tg);
> >
> > + load = min(gcfs_rq->runnable_load_avg *
> > + shares / gcfs_rq->load.weight, shares);
>
> There is a unit problem above:
> runnable_load_avg and shares are not in the same range but
> runnable_load_avg and scale_load_down(gcfs_rq->load.weight) are so
> you should use
> gcfs_rq->runnable_load_avg * scale_load_down(shares) /
> scale_load_down(gcfs_rq->load.weight).
But the only difference there is that we lose accuracy in calculation;
otherwise, the end results are the same, no?
> Hopefully both scale_load_down cancel between them
> But the min should be then tested with scale_load_down(shares) and not
> only shares
Ah, that's right. The min should be against scaled down shares.
Thanks.
--
tejun
Powered by blists - more mailing lists