From: Chris Wilson <chris@chris-wilson.co.uk>
To: Francisco Jerez <currojerez@riseup.net>,
linux-pm@vger.kernel.org, intel-gfx@lists.freedesktop.org,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: [PATCH 9/9] drm/i915/execlists: Report GPU rendering as IO activity to cpufreq.
Date: Wed, 28 Mar 2018 09:02:52 +0100 [thread overview]
Message-ID: <152222417278.10679.15949311520002257163@mail.alporthouse.com> (raw)
In-Reply-To: <20180328063845.4884-10-currojerez@riseup.net>
Quoting Francisco Jerez (2018-03-28 07:38:45)
> This allows cpufreq governors to realize when the system becomes
> non-CPU-bound due to GPU rendering activity, which will cause the
> intel_pstate LP controller to behave more conservatively: CPU energy
> usage will be reduced when there isn't a good chance for system
> performance to scale with CPU frequency. This leaves additional TDP
> budget available for the GPU to reach higher frequencies, which is
> translated into an improvement in graphics performance to the extent
> that the workload remains TDP-limited (Most non-trivial graphics
> benchmarks out there improve significantly in TDP-constrained
> platforms, see the cover letter for some numbers). If the workload
> isn't (anymore) TDP-limited performance should stay roughly constant,
> but energy usage will be divided by a similar factor.
And that's what I thought IPS was already meant to be achieving;
intelligent distribution between different units...
> The intel_pstate LP controller is only enabled on BXT+ small-core
> platforms at this point, so this shouldn't have any effect on other
> systems.
Although that's probably only a feature for big core :)
> Signed-off-by: Francisco Jerez <currojerez@riseup.net>
> ---
> drivers/gpu/drm/i915/intel_lrc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 3a69b367e565..721f915115bd 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -132,6 +132,7 @@
> *
> */
> #include <linux/interrupt.h>
> +#include <linux/cpufreq.h>
>
> #include <drm/drmP.h>
> #include <drm/i915_drm.h>
> @@ -379,11 +380,13 @@ execlists_context_schedule_in(struct i915_request *rq)
> {
> execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_IN);
> intel_engine_context_in(rq->engine);
> + cpufreq_io_active_begin();
Since you only care about a binary value for GPU activity, we don't need
to do this on each context, just between submitting the first request
and the final completion, i.e. couple this to EXECLISTS_ACTIVE_USER.
Haven't yet gone back to check how heavy io_active_begin/end are, but I
trust you appreciate that this code is particularly latency sensitive.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-03-28 8:02 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-28 6:38 [PATCH 0/9] GPU-bound energy efficiency improvements for the intel_pstate driver Francisco Jerez
2018-03-28 6:38 ` [PATCH 1/9] cpufreq: Implement infrastructure keeping track of aggregated IO active time Francisco Jerez
2018-03-28 6:38 ` [PATCH 2/9] Revert "cpufreq: intel_pstate: Replace bxt_funcs with core_funcs" Francisco Jerez
2018-03-28 6:38 ` [PATCH 3/9] Revert "cpufreq: intel_pstate: Shorten a couple of long names" Francisco Jerez
2018-03-28 6:38 ` [PATCH 4/9] Revert "cpufreq: intel_pstate: Simplify intel_pstate_adjust_pstate()" Francisco Jerez
2018-03-28 6:38 ` [PATCH 5/9] Revert "cpufreq: intel_pstate: Drop ->update_util from pstate_funcs" Francisco Jerez
2018-03-28 6:38 ` [PATCH 6/9] cpufreq/intel_pstate: Implement variably low-pass filtering controller for small core Francisco Jerez
2018-03-28 6:38 ` [PATCH 7/9] SQUASH: cpufreq/intel_pstate: Enable LP controller based on ACPI FADT profile Francisco Jerez
2018-03-28 6:38 ` [PATCH 8/9] OPTIONAL: cpufreq/intel_pstate: Expose LP controller parameters via debugfs Francisco Jerez
2018-03-28 6:38 ` [PATCH 9/9] drm/i915/execlists: Report GPU rendering as IO activity to cpufreq Francisco Jerez
2018-03-28 8:02 ` Chris Wilson [this message]
2018-03-28 18:55 ` Francisco Jerez
2018-03-28 19:20 ` Chris Wilson
2018-03-28 23:19 ` Chris Wilson
2018-03-29 0:32 ` Francisco Jerez
2018-03-29 1:01 ` Chris Wilson
2018-03-29 1:20 ` Chris Wilson
2018-03-30 18:50 ` [PATCH 0/9] GPU-bound energy efficiency improvements for the intel_pstate driver Francisco Jerez
2018-04-10 22:28 ` Francisco Jerez
2018-04-11 3:14 ` Srinivas Pandruvada
2018-04-11 16:10 ` Francisco Jerez
2018-04-11 16:26 ` Francisco Jerez
2018-04-11 17:35 ` Juri Lelli
2018-04-12 21:38 ` Francisco Jerez
2018-04-12 6:17 ` Srinivas Pandruvada
2018-04-14 2:00 ` Francisco Jerez
2018-04-14 4:01 ` Srinivas Pandruvada
2018-04-16 14:04 ` Eero Tamminen
2018-04-16 17:27 ` Srinivas Pandruvada
2018-04-12 8:58 ` Peter Zijlstra
2018-04-12 18:34 ` Francisco Jerez
2018-04-12 19:33 ` Peter Zijlstra
2018-04-12 19:55 ` Francisco Jerez
2018-04-13 18:15 ` Peter Zijlstra
2018-04-14 1:57 ` Francisco Jerez
2018-04-14 9:49 ` Peter Zijlstra
2018-04-17 14:03 ` Chris Wilson
2018-04-17 15:34 ` Srinivas Pandruvada
2018-04-17 19:27 ` Francisco Jerez
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=152222417278.10679.15949311520002257163@mail.alporthouse.com \
--to=chris@chris-wilson.co.uk \
--cc=currojerez@riseup.net \
--cc=eero.t.tamminen@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@linux.intel.com \
/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;
as well as URLs for NNTP newsgroup(s).