From: Juri Lelli <juri.lelli@arm.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Linux PM list <linux-pm@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Peter Zijlstra <peterz@infradead.org>,
Steve Muckle <steve.muckle@linaro.org>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [RFC/RFT][PATCH 1/1] cpufreq: New governor using utilization data from the scheduler
Date: Mon, 22 Feb 2016 14:16:39 +0000 [thread overview]
Message-ID: <20160222141639.GF27380@e106622-lin> (raw)
In-Reply-To: <2004800.S71i79juRi@vostro.rjw.lan>
Hi Rafael,
thanks for this RFC. I'm going to test it more in the next few days, but
I already have some questions from skimming through it. Please find them
inline below.
On 22/02/16 00:18, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Add a new cpufreq scaling governor, called "schedutil", that uses
> scheduler-provided CPU utilization information as input for making
> its decisions.
>
I guess the first (macro) question is why did you decide to go with a
complete new governor, where new here is w.r.t. the sched-freq solution.
AFAICT, it is true that your solution directly builds on top of the
latest changes to cpufreq core and governor, but it also seems to have
more than a few points in common with sched-freq, and sched-freq has
been discussed and evaluated for already quite some time. Also, it
appears to me that they both shares (or they might encounter in the
future as development progresses) the same kind of problems, like for
example the fact that we can't trigger opp changes from scheduler
context ATM.
Don't get me wrong. I think that looking at different ways to solve a
problem is always beneficial, since I guess that the goal in the end is
to come up with something that suits everybody's needs. I was only
curious about your thoughts on sched-freq. But we can also wait for the
next RFC from Steve for this macro question. :-)
[...]
> +static void sugov_update_commit(struct policy_dbs_info *policy_dbs, u64 time,
> + unsigned int next_freq)
> +{
> + struct sugov_policy *sg_policy = to_sg_policy(policy_dbs);
> +
> + sg_policy->next_freq = next_freq;
> + policy_dbs->last_sample_time = time;
> + policy_dbs->work_in_progress = true;
> + irq_work_queue(&policy_dbs->irq_work);
Here we basically use the system wq to be able to do the freq transition
in process context. CFS is probably fine with this, but don't you think
we might get into troubles when, in the future, we will want to service
RT/DL requests more properly and they will end up being serviced
together with all the others wq users and at !RT priority?
> +}
> +
> +static void sugov_update_shared(struct update_util_data *data, u64 time,
> + unsigned long util, unsigned long max)
> +{
We don't have a way to tell from which scheduling class this is coming
from, do we? And if that is true can't a request from CFS overwrite
RT/DL go to max requests?
[...]
Anyway, I'm going to start using our existing testing infrastructure
used to evaluate sched-freq to try to better understand the implications
of your approach.
Best,
- Juri
next prev parent reply other threads:[~2016-02-22 14:15 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-21 23:16 [RFC/RFT][PATCH 0/1] cpufreq: New governor based on scheduler-provided utilization data Rafael J. Wysocki
2016-02-21 23:18 ` [RFC/RFT][PATCH 1/1] cpufreq: New governor using utilization data from the scheduler Rafael J. Wysocki
2016-02-22 14:16 ` Juri Lelli [this message]
2016-02-22 23:02 ` Rafael J. Wysocki
2016-02-23 7:20 ` Steve Muckle
2016-02-24 1:38 ` Rafael J. Wysocki
2016-02-25 11:01 ` Juri Lelli
2016-02-26 2:36 ` Rafael J. Wysocki
2016-03-01 14:56 ` Juri Lelli
2016-03-01 20:26 ` Rafael J. Wysocki
2016-02-24 1:20 ` [RFC/RFT][PATCH v2 0/2] cpufreq: New governor based on scheduler-provided utilization data Rafael J. Wysocki
2016-02-24 1:22 ` [RFC/RFT][PATCH v2 1/2] cpufreq: New governor using utilization data from the scheduler Rafael J. Wysocki
2016-02-25 21:14 ` [RFC/RFT][PATCH v4 " Rafael J. Wysocki
2016-02-27 0:21 ` Rafael J. Wysocki
2016-02-27 4:33 ` Steve Muckle
2016-02-27 15:24 ` Rafael J. Wysocki
2016-03-01 4:10 ` Steve Muckle
2016-03-01 20:20 ` Rafael J. Wysocki
2016-03-03 3:20 ` Steve Muckle
2016-03-03 3:35 ` Steve Muckle
2016-03-03 19:20 ` Rafael J. Wysocki
2016-02-24 1:28 ` [RFC/RFT][PATCH v2 2/2] cpufreq: schedutil: Switching frequencies from interrupt context Rafael J. Wysocki
2016-02-24 23:30 ` [RFC/RFT][PATCH v3 " Rafael J. Wysocki
2016-02-25 9:08 ` Peter Zijlstra
2016-02-25 9:12 ` Peter Zijlstra
2016-02-25 11:11 ` Rafael J. Wysocki
2016-02-25 11:10 ` Rafael J. Wysocki
2016-02-25 11:52 ` Peter Zijlstra
2016-02-25 20:54 ` Rafael J. Wysocki
2016-02-25 21:20 ` [RFC/RFT][PATCH v4 " Rafael J. Wysocki
2016-03-03 14:27 ` [RFC/RFT][PATCH 0/1] cpufreq: New governor based on scheduler-provided utilization data Ingo Molnar
2016-03-03 17:15 ` Rafael J. Wysocki
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=20160222141639.GF27380@e106622-lin \
--to=juri.lelli@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=steve.muckle@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox