[Intel-gfx] [PATCH v3 3/3] drm/i915: Fix premature LRC unpin in GuC mode

Chris Wilson chris at chris-wilson.co.uk
Fri Jan 22 08:44:45 PST 2016

On Fri, Jan 22, 2016 at 04:33:18PM +0000, Tvrtko Ursulin wrote:
> I was confused by the current code which does the reset after unpinning:
> ...
> 	i915_gem_reset(dev);
> 	simulated = dev_priv->gpu_error.stop_rings != 0;
> 	ret = intel_gpu_reset(dev);
> ...
> What is right then?

Yeah, it would be better to do the sw reset after the hw reset so that
the GPU is a known state when we tear down everything.
> Sounds bad to be unpinning with the GPU in unknown state. But
> obviously it has been like this for who knows how long. So I have no
> idea. :(

i915_reset() is only called on a hung GPU, and I expect we simply
haven't stressed the system enough with an active-vs-hung pair of
engines to be able to see stray writes and whatnot.

The downside is that if we jiggle the i915_gem_reset() we have to ask
the awkward question of what to do with state when reset fails? We
should keep it around because the hw state is unknown - but that can be
a significant amount of memory trapped.

Chris Wilson, Intel Open Source Technology Centre

More information about the Intel-gfx mailing list