Skip to content

Commit

Permalink
drm/i915/gt: Leave rps->cur_freq on unpark
Browse files Browse the repository at this point in the history
Don't override our previous frequency we used after parking, and avoid
continually spiking back to the efficient frequency for mostly idle
workloads. Trust our ability to autotune across a workload switch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Lyude Paul <lyude@redhat.com>
Reviewed-by: Andi Shyti <andi.shyti@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200322163225.28791-2-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Mar 22, 2020
1 parent 21abf0b commit 043cd2d
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions drivers/gpu/drm/i915/gt/intel_rps.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,10 +187,8 @@ static void gen5_rps_init(struct intel_rps *rps)
fmax, fmin, fstart);

rps->min_freq = fmax;
rps->efficient_freq = fstart;
rps->max_freq = fmin;

rps->idle_freq = rps->min_freq;
rps->cur_freq = rps->idle_freq;
}

static unsigned long
Expand Down Expand Up @@ -713,8 +711,6 @@ static int rps_set(struct intel_rps *rps, u8 val, bool update)

void intel_rps_unpark(struct intel_rps *rps)
{
u8 freq;

if (!rps->enabled)
return;

Expand All @@ -726,9 +722,10 @@ void intel_rps_unpark(struct intel_rps *rps)

WRITE_ONCE(rps->active, true);

freq = max(rps->cur_freq, rps->efficient_freq),
freq = clamp(freq, rps->min_freq_softlimit, rps->max_freq_softlimit);
intel_rps_set(rps, freq);
intel_rps_set(rps,
clamp(rps->cur_freq,
rps->min_freq_softlimit,
rps->max_freq_softlimit));

rps->last_adj = 0;

Expand Down Expand Up @@ -1672,7 +1669,9 @@ void intel_rps_init(struct intel_rps *rps)
/* Finally allow us to boost to max by default */
rps->boost_freq = rps->max_freq;
rps->idle_freq = rps->min_freq;
rps->cur_freq = rps->idle_freq;

/* Start in the middle, from here we will autotune based on workload */
rps->cur_freq = rps->efficient_freq;

rps->pm_intrmsk_mbz = 0;

Expand Down

0 comments on commit 043cd2d

Please sign in to comment.