All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: tom.orourke@intel.com
Cc: intel-gfx@lists.freedesktop.org,
	radoslaw.szwichtenberg@intel.com, paulo.r.zanoni@intel.com,
	Tom O'Rourke <Tom.O'Rourke@intel.com>
Subject: Re: [PATCH 10/21] drm/i915/slpc: Update current requested frequency
Date: Thu, 28 Apr 2016 07:25:29 +0100	[thread overview]
Message-ID: <20160428062529.GA19229@nuc-i3427.alporthouse.com> (raw)
In-Reply-To: <1461805865-212590-11-git-send-email-tom.orourke@intel.com>

On Wed, Apr 27, 2016 at 06:10:54PM -0700, tom.orourke@intel.com wrote:
> From: Tom O'Rourke <Tom.O'Rourke@intel.com>
> 
> When SLPC is controlling requested frequency, the rps.cur_freq
> value is not used to make the frequency request.
> 
> Before using rps.cur_freq in sysfs or debugfs, read
> requested frequency from register to get the value
> most recently requested by SLPC firmware.
> 
> v2: replace HAS_SLPC with intel_slpc_active (Paulo)
> v3: Avoid magic numbers (Nick)
>     Use a function for repeated code (Jon)
> 
> Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 6 ++++++
>  drivers/gpu/drm/i915/i915_drv.h     | 5 +++++
>  drivers/gpu/drm/i915/i915_reg.h     | 1 +
>  drivers/gpu/drm/i915/i915_sysfs.c   | 3 +++
>  4 files changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 8b8d6f0..1295d8b 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1168,6 +1168,9 @@ static int i915_frequency_info(struct seq_file *m, void *unused)
>  
>  	flush_delayed_work(&dev_priv->rps.delayed_resume_work);
>  
> +	if (intel_slpc_active(dev))
> +		dev_priv->rps.cur_freq = gen9_read_requested_freq(dev_priv);

No. This must remain our own cur_freq.

What you want to report is the HW current requested frequency, but the
reporting of our SW state must remain just that.

Do not fudge our bookkeeping when reporting it, you are just papering
over the very bug it is trying to report.

> +
>  	if (IS_GEN5(dev)) {
>  		u16 rgvswctl = I915_READ16(MEMSWCTL);
>  		u16 rgvstat = I915_READ16(MEMSTAT_ILK);
> @@ -2399,6 +2402,9 @@ static int i915_rps_boost_info(struct seq_file *m, void *data)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct drm_file *file;
>  
> +	if (intel_slpc_active(dev))
> +		dev_priv->rps.cur_freq = gen9_read_requested_freq(dev_priv);

This is just silly since this whole mechanism is nerfed.

> diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
> index 2d576b7..826e40c 100644
> --- a/drivers/gpu/drm/i915/i915_sysfs.c
> +++ b/drivers/gpu/drm/i915/i915_sysfs.c
> @@ -318,6 +318,9 @@ static ssize_t gt_cur_freq_mhz_show(struct device *kdev,
>  	intel_runtime_pm_get(dev_priv);
>  
>  	mutex_lock(&dev_priv->rps.hw_lock);
> +	if (intel_slpc_active(dev))
> +		dev_priv->rps.cur_freq = gen9_read_requested_freq(dev_priv);

We don't have a sysfs for reporting the HW requested frequency. If you
make the change here for SLPC, make the change for the other gen as
well. It's the important distinction between using cur_freq and RPNSWREQ.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-04-28  6:25 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28  1:10 [PATCH v4 00/21] Add support for GuC-based SLPC tom.orourke
2016-04-28  1:10 ` [PATCH 01/21] drm/i915/slpc: Expose guc functions for use with SLPC tom.orourke
2016-04-28  7:00   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 02/21] drm/i915/slpc: Add has_slpc capability flag tom.orourke
2016-04-28  1:10 ` [PATCH 03/21] drm/i915/slpc: Add slpc_version_check tom.orourke
2016-04-28  6:46   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 04/21] drm/i915/slpc: Add enable_slpc module parameter tom.orourke
2016-04-28  7:02   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 05/21] drm/i915/slpc: Use intel_slpc_* functions if supported tom.orourke
2016-04-28  1:10 ` [PATCH 06/21] drm/i915/slpc: Enable SLPC in guc " tom.orourke
2016-04-28  1:10 ` [PATCH 07/21] drm/i915/slpc: If using SLPC, do not set frequency tom.orourke
2016-04-28  6:34   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 08/21] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data tom.orourke
2016-04-28  7:15   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 09/21] drm/i915/slpc: Setup rps frequency values during SLPC init tom.orourke
2016-04-28  6:41   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 10/21] drm/i915/slpc: Update current requested frequency tom.orourke
2016-04-28  6:25   ` Chris Wilson [this message]
2016-04-28  1:10 ` [PATCH 11/21] drm/i915/slpc: Send reset event tom.orourke
2016-04-28  1:10 ` [PATCH 12/21] drm/i915/slpc: Send shutdown event tom.orourke
2016-04-28  7:07   ` Chris Wilson
2016-04-28  1:10 ` [PATCH 13/21] drm/i915/slpc: Add Display mode event related data structures tom.orourke
2016-04-28  1:10 ` [PATCH 14/21] drm/i915/slpc: Notification of Display mode change tom.orourke
2016-04-28  1:10 ` [PATCH 15/21] drm/i915/slpc: Notification of Refresh Rate change tom.orourke
2016-04-28  8:38   ` Daniel Vetter
2016-04-28  8:41     ` Daniel Vetter
2016-04-29  9:09   ` Ville Syrjälä
2016-04-28  1:11 ` [PATCH 16/21] drm/i915/slpc: Add slpc_status enum values tom.orourke
2016-04-28  1:11 ` [PATCH 17/21] drm/i915/slpc: Add parameter unset/set/get functions tom.orourke
2016-04-28  1:11 ` [PATCH 18/21] drm/i915/slpc: Add slpc support for max/min freq tom.orourke
2016-04-28  1:11 ` [PATCH 19/21] drm/i915/slpc: Add enable/disable debugfs for slpc tom.orourke
2016-04-28  7:28   ` Chris Wilson
2016-04-28  1:11 ` [PATCH 20/21] drm/i915/slpc: Add i915_slpc_info to debugfs tom.orourke
2016-04-28  1:11 ` [PATCH 21/21] drm/i915/slpc: Fail intel_runtime_suspend if SLPC or RPS not active tom.orourke
2016-04-28  6:56   ` Chris Wilson
2016-04-28  7:57     ` Imre Deak
2016-04-28  8:00       ` Chris Wilson
2016-04-29  9:34         ` Imre Deak
2016-04-28  7:16 ` ✓ Fi.CI.BAT: success for Add support for GuC-based SLPC (rev4) Patchwork
2016-04-28 23:01 ` [PATCH v4 00/21] Add support for GuC-based SLPC O'Rourke, Tom
2016-04-29  8:47   ` Chris Wilson

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=20160428062529.GA19229@nuc-i3427.alporthouse.com \
    --to=chris@chris-wilson.co.uk \
    --cc=Tom.O'Rourke@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=paulo.r.zanoni@intel.com \
    --cc=radoslaw.szwichtenberg@intel.com \
    --cc=tom.orourke@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 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.