From: Jani Nikula <jani.nikula@linux.intel.com>
To: Bob Paauwe <bob.j.paauwe@intel.com>,
Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Fix GT frequency rounding
Date: Mon, 16 Nov 2015 15:28:10 +0200 [thread overview]
Message-ID: <878u5yf505.fsf@intel.com> (raw)
In-Reply-To: <20151113113818.28f61de6@bpaauwe-desk.fm.intel.com>
On Fri, 13 Nov 2015, Bob Paauwe <bob.j.paauwe@intel.com> wrote:
> On Fri, 13 Nov 2015 19:29:41 +0200
> Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
>
>> When we set and later readback a frequency value through
>> sysfs interface, igt/pm_rpm assumes that we get same value back
>> if it matches hw granularity.
>>
>> On bxt we have found out that this is not always the case.
>> Currently frequency - hw ratio - frequency conversions round down,
>> with few exceptions on platforms that have more specific conversions.
>> On bxt the supported range can be for example from 100Mhz to 650Mhz.
>> Midpoint is then calculated by test to be 375 which pm_rps uses to find a
>> closest hw supported frequency. That is 366 (ratio 22),
>> which it then writes back. But as the rounding down kicks in,
>> driver actually sets 350 instead of 366, as 366 is 2/3 below 22 * 50/3.
>>
>> Fix this by rounding to closest instead of rounding down in
>> freq-ratio-freq conversions.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92768
>> Testcase: igt/pm_rps/basic-api
>> Tested-by: Bob Paauwe <bob.j.paauwe@intel.com>
>> Cc: Bob Paauwe <bob.j.paauwe@intel.com>
>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_pm.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index 647c0ff..740623f 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -7139,7 +7139,8 @@ static int chv_freq_opcode(struct drm_i915_private *dev_priv, int val)
>> int intel_gpu_freq(struct drm_i915_private *dev_priv, int val)
>> {
>> if (IS_GEN9(dev_priv->dev))
>> - return (val * GT_FREQUENCY_MULTIPLIER) / GEN9_FREQ_SCALER;
>> + return DIV_ROUND_CLOSEST(val * GT_FREQUENCY_MULTIPLIER,
>> + GEN9_FREQ_SCALER);
>> else if (IS_CHERRYVIEW(dev_priv->dev))
>> return chv_gpu_freq(dev_priv, val);
>> else if (IS_VALLEYVIEW(dev_priv->dev))
>> @@ -7151,13 +7152,14 @@ int intel_gpu_freq(struct drm_i915_private *dev_priv, int val)
>> int intel_freq_opcode(struct drm_i915_private *dev_priv, int val)
>> {
>> if (IS_GEN9(dev_priv->dev))
>> - return (val * GEN9_FREQ_SCALER) / GT_FREQUENCY_MULTIPLIER;
>> + return DIV_ROUND_CLOSEST(val * GEN9_FREQ_SCALER,
>> + GT_FREQUENCY_MULTIPLIER);
>> else if (IS_CHERRYVIEW(dev_priv->dev))
>> return chv_freq_opcode(dev_priv, val);
>> else if (IS_VALLEYVIEW(dev_priv->dev))
>> return byt_freq_opcode(dev_priv, val);
>> else
>> - return val / GT_FREQUENCY_MULTIPLIER;
>> + return DIV_ROUND_CLOSEST(val, GT_FREQUENCY_MULTIPLIER);
>> }
>>
>> struct request_boost {
>
> Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com>
Pushed to drm-intel-fixes, thanks for the patch and review.
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2015-11-16 13:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-13 17:29 [PATCH] drm/i915: Fix GT frequency rounding Mika Kuoppala
2015-11-13 17:47 ` Ville Syrjälä
2015-11-13 19:38 ` Bob Paauwe
2015-11-16 13:28 ` Jani Nikula [this message]
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=878u5yf505.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=bob.j.paauwe@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=mika.kuoppala@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 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.