Message ID | 20190409161310.20382-3-mika.kuoppala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/7] drm/i915: Use dedicated rc6 enabling sequence for gen11 | expand |
Quoting Mika Kuoppala (2019-04-09 17:13:06) > Use a recommended idle hysteresis for media and render powergates. > > References: bspec#52070 > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_pm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 30ef507b88a4..b9be9ea5fc18 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -7170,8 +7170,8 @@ static void gen11_enable_rc6(struct drm_i915_private *dev_priv) > * conservative, we have to factor in a context switch on top (due > * to ksoftirqd). > */ > - I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 250); > - I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 250); > + I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 25); > + I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 25); We were using higher than recommended for the simple reason of not allowing it to powergate while signaling between engines. We are much faster now (though be sure to disable semaphores to put us in worse case) and since we use one value, we need to measure on the slow platform. Anyway, just pointing out there was a reason for a relatively large hysteresis. -Chris
Chris Wilson <chris@chris-wilson.co.uk> writes: > Quoting Mika Kuoppala (2019-04-09 17:13:06) >> Use a recommended idle hysteresis for media and render powergates. >> >> References: bspec#52070 >> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> >> --- >> drivers/gpu/drm/i915/intel_pm.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c >> index 30ef507b88a4..b9be9ea5fc18 100644 >> --- a/drivers/gpu/drm/i915/intel_pm.c >> +++ b/drivers/gpu/drm/i915/intel_pm.c >> @@ -7170,8 +7170,8 @@ static void gen11_enable_rc6(struct drm_i915_private *dev_priv) >> * conservative, we have to factor in a context switch on top (due >> * to ksoftirqd). >> */ >> - I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 250); >> - I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 250); >> + I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 25); >> + I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 25); > > We were using higher than recommended for the simple reason of not > allowing it to powergate while signaling between engines. We are much > faster now (though be sure to disable semaphores to put us in worse > case) and since we use one value, we need to measure on the slow > platform. > > Anyway, just pointing out there was a reason for a relatively large > hysteresis. Then we should just drop this patch. Ta for pointing out the reasoning. -Mika
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 30ef507b88a4..b9be9ea5fc18 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -7170,8 +7170,8 @@ static void gen11_enable_rc6(struct drm_i915_private *dev_priv) * conservative, we have to factor in a context switch on top (due * to ksoftirqd). */ - I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 250); - I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 250); + I915_WRITE(GEN9_MEDIA_PG_IDLE_HYSTERESIS, 25); + I915_WRITE(GEN9_RENDER_PG_IDLE_HYSTERESIS, 25); /* 3a: Enable RC6 */ I915_WRITE(GEN6_RC6_THRESHOLD, 50000); /* 50/125ms per EI */
Use a recommended idle hysteresis for media and render powergates. References: bspec#52070 Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/i915/intel_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)