From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM list <linux-pm@vger.kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Viresh Kumar <viresh.kumar@linaro.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Steve Muckle <steve.muckle@linaro.org>,
Juri Lelli <juri.lelli@arm.com>, Ingo Molnar <mingo@kernel.org>
Subject: [RFC][PATCH 0/7] cpufreq / sched: cpufreq_update_util() flags and iowait boosting
Date: Mon, 01 Aug 2016 01:31:38 +0200 [thread overview]
Message-ID: <3752826.3sXAQIvcIA@vostro.rjw.lan> (raw)
Hi,
Admittedly, this hasn't been tested yet, so no promises and you have been
warned. It builds, though (on x86-64 at least).
At this point I'm looking for general feedback mostly: does the direction make
sense or is there any reason why it can't work (that I'm not seeing), is it
acceptable and if not, how can it be improved?
Of course, if you don't like the details, please let me know too. :-)
This is based on Peter's suggestions and Srinivas's research.
The ultimate goal is to improve performance for tasks that have been waiting
on I/O in the schedutil governor and to provide a better default P-state
selection algorithm for intel_pstate (which also involves taking the "iowait"
into account). The steps to get there are the following:
[1] Drop the util and max arguments from cpufreq_update_util() and the ->func()
callback in struct update_util_data and make the schedutil governor access
the scheduler's utilization data directly (this one is originally from Peter,
I did my best to avoid breaking it).
[2] Drop cpufreq_trigger_update() as it is the same as cpufreq_update_util()
after [1].
[3] Pass rq to cpufreq_update_util() (instead of the time) and make it do the
smp_processor_id() check.
[4] Add a flags argument to cpufreq_update_util() and the ->func() callback in
struct update_util_data, update their users accordingly and use the flags
to clean up the handling of util updates from the RT sched class a bit.
[5] Make enqueue_task_fair() pass a new "IO" flag to cpufreq_update_util()
if p->in_iowait is set.
[6] Modify the schedutil governor to use the new "IO" flag for boosting CPU
frequency temporarily (in order to improve performance for tasks that
have been waiting on I/O).
[7] Add a new P-state selection algorithm, based on "busy fraction" computation
and "IO" boosting, and use it by default for Core processors.
Thanks,
Rafael
next reply other threads:[~2016-07-31 23:41 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-31 23:31 Rafael J. Wysocki [this message]
2016-07-31 23:34 ` [RFC][PATCH 1/7] cpufreq / sched: Make schedutil access utilization data directly Rafael J. Wysocki
2016-08-01 19:28 ` Steve Muckle
2016-08-01 23:46 ` Rafael J. Wysocki
2016-08-02 10:38 ` Juri Lelli
2016-08-02 14:28 ` Steve Muckle
2016-08-02 14:43 ` Juri Lelli
2016-08-08 10:38 ` Peter Zijlstra
2016-07-31 23:35 ` [RFC][PATCH 2/7] cpufreq / sched: Drop cpufreq_trigger_update() Rafael J. Wysocki
2016-07-31 23:36 ` [RFC][PATCH 3/7] cpufreq / sched: Check cpu_of(rq) in cpufreq_update_util() Rafael J. Wysocki
2016-08-01 7:29 ` Dominik Brodowski
2016-08-01 14:57 ` Rafael J. Wysocki
2016-08-01 19:48 ` Steve Muckle
2016-08-01 23:43 ` Rafael J. Wysocki
2016-07-31 23:36 ` [RFC][PATCH 4/7] cpufreq / sched: Add flags argument to cpufreq_update_util() Rafael J. Wysocki
2016-08-01 7:33 ` Dominik Brodowski
2016-08-01 14:57 ` Rafael J. Wysocki
2016-08-01 19:59 ` Steve Muckle
2016-08-01 23:44 ` Rafael J. Wysocki
2016-08-02 1:36 ` Steve Muckle
2016-07-31 23:37 ` [RFC][PATCH 5/7] cpufreq / sched: UUF_IO flag to indicate iowait condition Rafael J. Wysocki
2016-08-02 1:22 ` Steve Muckle
2016-08-02 1:37 ` Rafael J. Wysocki
2016-08-02 22:02 ` Steve Muckle
2016-08-02 22:38 ` Rafael J. Wysocki
2016-08-04 2:24 ` Steve Muckle
2016-08-04 21:19 ` Rafael J. Wysocki
2016-08-04 22:09 ` Steve Muckle
2016-08-05 23:36 ` Rafael J. Wysocki
2016-07-31 23:37 ` [RFC][PATCH 6/7] cpufreq: schedutil: Add iowait boosting Rafael J. Wysocki
2016-08-02 1:35 ` Steve Muckle
2016-08-02 23:03 ` Rafael J. Wysocki
2016-07-31 23:38 ` [RFC][PATCH 7/7] cpufreq: intel_pstate: Change P-state selection algorithm for Core Rafael J. Wysocki
2016-08-04 4:18 ` Doug Smythies
2016-08-04 6:53 ` Doug Smythies
2016-08-06 0:02 ` Rafael J. Wysocki
2016-08-09 17:16 ` Doug Smythies
2016-08-13 15:59 ` Doug Smythies
2016-08-19 14:47 ` Peter Zijlstra
2016-08-20 1:06 ` Rafael J. Wysocki
2016-08-20 6:40 ` Doug Smythies
2016-08-22 18:53 ` Srinivas Pandruvada
2016-08-22 22:53 ` Doug Smythies
2016-08-23 3:48 ` Wanpeng Li
2016-08-23 4:08 ` Srinivas Pandruvada
2016-08-23 4:50 ` Wanpeng Li
2016-08-23 17:30 ` Rafael J. Wysocki
2016-08-01 15:26 ` [RFC][PATCH 0/7] cpufreq / sched: cpufreq_update_util() flags and iowait boosting Doug Smythies
2016-08-01 16:30 ` Rafael J. Wysocki
2016-08-08 11:08 ` Peter Zijlstra
2016-08-08 13:01 ` 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=3752826.3sXAQIvcIA@vostro.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=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=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
all inboxes | Powered by JetHome®