From: Peter Zijlstra <peterz@infradead.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: mingo@kernel.org, linux-kernel@vger.kernel.org,
rjw@rjwysocki.net, juri.lelli@redhat.com,
dietmar.eggemann@arm.com, Morten.Rasmussen@arm.com,
viresh.kumar@linaro.org, valentin.schneider@arm.com,
patrick.bellasi@arm.com, joel@joelfernandes.org,
daniel.lezcano@linaro.org, quentin.perret@arm.com,
Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH v6 04/11] cpufreq/schedutil: use rt utilization tracking
Date: Thu, 21 Jun 2018 20:57:06 +0200 [thread overview]
Message-ID: <20180621185706.GA4900@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <20180621184524.GB27616@hirez.programming.kicks-ass.net>
On Thu, Jun 21, 2018 at 08:45:24PM +0200, Peter Zijlstra wrote:
> On Fri, Jun 08, 2018 at 02:09:47PM +0200, Vincent Guittot wrote:
> > static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu)
> > {
> > struct rq *rq = cpu_rq(sg_cpu->cpu);
> > + unsigned long util;
> >
> > if (rq->rt.rt_nr_running)
> > return sg_cpu->max;
> >
> > + util = sg_cpu->util_dl;
> > + util += sg_cpu->util_cfs;
> > + util += sg_cpu->util_rt;
> > +
> > /*
> > * Utilization required by DEADLINE must always be granted while, for
> > * FAIR, we use blocked utilization of IDLE CPUs as a mechanism to
> > @@ -197,7 +204,7 @@ static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu)
> > * util_cfs + util_dl as requested freq. However, cpufreq is not yet
> > * ready for such an interface. So, we only do the latter for now.
> > */
> > - return min(sg_cpu->max, (sg_cpu->util_dl + sg_cpu->util_cfs));
> > + return min(sg_cpu->max, util);
> > }
>
> So this (and the dl etc. equivalents) result in exactly the problems
> complained about last time, no?
>
> What I proposed was something along the lines of:
>
> util = 1024 * sg_cpu->util_cfs;
> util /= (1024 - (sg_cpu->util_rt + sg_cpu->util_dl + ...));
>
> return min(sg_cpu->max, util + sg_cpu->bw_dl);
>
> Where we, instead of directly adding the various util signals.
That looks unfinished; I think that wants to include: "we renormalize
the CFS signal".
> I now see an email from Quentin asking if these things are not in fact
> the same, but no, they are not. The difference is that the above only
> affects the CFS signal and will re-normalize the utilization of an
> 'always' running task back to 1 by compensating for the stolen capacity.
>
> But it will not, like these here patches, affect the OPP selection of
> other classes. If there is no CFS utilization (or very little), then the
> renormalization will not matter, and the existing DL bandwidth
> compuation will be unaffected.
>
next prev parent reply other threads:[~2018-06-21 18:57 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-08 12:09 [PATCH v6 00/11] track CPU utilization Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 01/11] sched/pelt: Move pelt related code in a dedicated file Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 02/11] sched/pelt: remove blank line Vincent Guittot
2018-06-21 14:33 ` Peter Zijlstra
2018-06-21 18:42 ` Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 03/11] sched/rt: add rt_rq utilization tracking Vincent Guittot
2018-06-15 11:52 ` Dietmar Eggemann
2018-06-15 12:18 ` Vincent Guittot
2018-06-15 14:55 ` Dietmar Eggemann
2018-06-21 18:50 ` Peter Zijlstra
2018-06-08 12:09 ` [PATCH v6 04/11] cpufreq/schedutil: use rt " Vincent Guittot
2018-06-18 9:00 ` Dietmar Eggemann
2018-06-18 12:58 ` Vincent Guittot
2018-06-21 18:45 ` Peter Zijlstra
2018-06-21 18:57 ` Peter Zijlstra [this message]
2018-06-22 8:10 ` Vincent Guittot
2018-06-22 11:41 ` Peter Zijlstra
2018-06-22 12:14 ` Vincent Guittot
2018-06-22 7:58 ` Juri Lelli
2018-06-22 7:58 ` Quentin Perret
2018-06-22 11:37 ` Peter Zijlstra
2018-06-22 11:44 ` Peter Zijlstra
2018-06-22 12:23 ` Vincent Guittot
2018-06-22 13:26 ` Peter Zijlstra
2018-06-22 13:52 ` Peter Zijlstra
2018-06-22 13:54 ` Vincent Guittot
2018-06-22 13:57 ` Vincent Guittot
2018-06-22 14:46 ` Peter Zijlstra
2018-06-22 14:49 ` Vincent Guittot
2018-06-22 14:11 ` Peter Zijlstra
2018-06-22 14:48 ` Peter Zijlstra
2018-06-22 14:12 ` Vincent Guittot
2018-06-22 12:54 ` Quentin Perret
2018-06-22 13:29 ` Peter Zijlstra
2018-06-22 15:22 ` Peter Zijlstra
2018-06-22 15:30 ` Quentin Perret
2018-06-22 17:24 ` Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 05/11] sched/dl: add dl_rq " Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 06/11] cpufreq/schedutil: use dl " Vincent Guittot
2018-06-08 12:39 ` Juri Lelli
2018-06-08 12:48 ` Vincent Guittot
2018-06-08 12:54 ` Juri Lelli
2018-06-08 13:36 ` Juri Lelli
2018-06-08 13:38 ` Vincent Guittot
2018-06-22 15:24 ` Peter Zijlstra
2018-06-22 17:22 ` Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 07/11] sched/irq: add irq " Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 08/11] cpufreq/schedutil: take into account interrupt Vincent Guittot
2018-06-12 8:54 ` Dietmar Eggemann
2018-06-12 9:10 ` Vincent Guittot
2018-06-12 9:16 ` Vincent Guittot
2018-06-12 9:20 ` Quentin Perret
2018-06-12 9:26 ` Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 09/11] sched: use pelt for scale_rt_capacity() Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 10/11] sched: remove rt_avg code Vincent Guittot
2018-06-08 12:09 ` [PATCH v6 11/11] proc/sched: remove unused sched_time_avg_ms Vincent Guittot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180621185706.GA4900@worktop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=Morten.Rasmussen@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=dietmar.eggemann@arm.com \
--cc=joel@joelfernandes.org \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=patrick.bellasi@arm.com \
--cc=quentin.perret@arm.com \
--cc=rjw@rjwysocki.net \
--cc=valentin.schneider@arm.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.