From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> On SNB (at least) it's dangeruopus to hang the GPU with an infinite batch buffer loop while RPS is disabled. The only thing that keeps the system going in such circumstances are the internal RPS timers, so we should never feed the GPU with RPS disabled unless we want to risk a total system hang. Previously we didn't fully disable RPS, but that changes in commit 2030d684f7b3 ("drm/i915/bxt: Explicitly clear the Turbo control register") so we probably didn't see the problem so often previously. But even before that we were at the mercy of the BIOS for the initial RPS state, so if the BIOS didn't enable RPS a GPU hang immediately upon boot could have been fatal. To avoid the problems let's just make the RPS enable immediate. This renders the delayed_resume_work useless actually. We could perhaps just move the ring freq table initialization to the work and do the other stull synchronously? Fixes: 2030d684f7b3 ("drm/i915/bxt: Explicitly clear the Turbo control register") Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- This is more and RFC at this point. Perhaps we might want to keep the delayed work but just for the ring freq table update (which is the main reson this whole thing exists in the first place). Another factor is that wait_for() is not exactly optiomal currently, so it makes the operation slower than it needs to be. Would need some hard numbers to see if it's worth keeping the delayed work or not I suppose. drivers/gpu/drm/i915/intel_pm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 817c84c22782..e65c5c2b9b4e 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -6505,6 +6505,7 @@ void intel_enable_gt_powersave(struct drm_i915_private *dev_priv) if (schedule_delayed_work(&dev_priv->rps.delayed_resume_work, round_jiffies_up_relative(HZ))) intel_runtime_pm_get_noresume(dev_priv); + flush_delayed_work(&dev_priv->rps.delayed_resume_work); } } -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx