Commit de3b4d93 authored by Chris Wilson's avatar Chris Wilson

drm/i915/gt: Restore aggressive post-boost downclocking

We reduced the clocks slowly after a boost event based on the
observation that the smoothness of animations suffered. However, since
reducing the evalution intervals, we should be able to respond to the
rapidly fluctuating workload of a simple desktop animation and so
restore the more aggressive downclocking.

References: 2a8862d2 ("drm/i915: Reduce the RPS shock")
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarAndi Shyti <andi.shyti@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200429205446.3259-6-chris@chris-wilson.co.uk
parent 3f88dde6
...@@ -1680,30 +1680,18 @@ static void rps_work(struct work_struct *work) ...@@ -1680,30 +1680,18 @@ static void rps_work(struct work_struct *work)
adj = 0; adj = 0;
} }
rps->last_adj = adj;
/* /*
* Limit deboosting and boosting to keep ourselves at the extremes * sysfs frequency limits may have snuck in while
* when in the respective power modes (i.e. slowly decrease frequencies * servicing the interrupt
* while in the HIGH_POWER zone and slowly increase frequencies while
* in the LOW_POWER zone). On idle, we will hit the timeout and drop
* to the next level quickly, and conversely if busy we expect to
* hit a waitboost and rapidly switch into max power.
*/
if ((adj < 0 && rps->power.mode == HIGH_POWER) ||
(adj > 0 && rps->power.mode == LOW_POWER))
rps->last_adj = 0;
/* sysfs frequency interfaces may have snuck in while servicing the
* interrupt
*/ */
new_freq += adj; new_freq += adj;
new_freq = clamp_t(int, new_freq, min, max); new_freq = clamp_t(int, new_freq, min, max);
if (intel_rps_set(rps, new_freq)) { if (intel_rps_set(rps, new_freq)) {
drm_dbg(&i915->drm, "Failed to set new GPU frequency\n"); drm_dbg(&i915->drm, "Failed to set new GPU frequency\n");
rps->last_adj = 0; adj = 0;
} }
rps->last_adj = adj;
mutex_unlock(&rps->lock); mutex_unlock(&rps->lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment