[Intel-gfx] [PATCH] drm/i915: Try to stop rings before reset

Daniel Vetter daniel.vetter at ffwll.ch
Wed Apr 30 09:36:47 CEST 2014


On Wed, Apr 30, 2014 at 8:56 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Tue, Apr 29, 2014 at 04:38:21PM +0200, Daniel Vetter wrote:
>>  int intel_gpu_reset(struct drm_device *dev)
>>  {
>> +     struct drm_i915_private *dev_priv = dev->dev_private;
>> +     struct intel_ring_buffer *ring;
>> +     int i;
>> +
>> +     for_each_ring(ring, dev_priv, i)
>> +             __intel_stop_ring_buffer(ring);
>
> intel_gpu_reset() is called after i915_gem_reset() in the normal reset
> sequence (when the GPU is hung) so what was the error in using the
> currently exported function?

I wanted to keep intel_gpu_reset as a hw-resetting function only, and
the ring_idle looked fragile in there. Atm it should work, but I still
prefer we only do the hw-level ring stopping here since that is what
seems to help. This way we have a clear separation of concerns between
the sw state reset and the hw reset, and then later on the restore
procedure.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list