[Intel-gfx] [PATCH] drm/i915: Unpin last_context at reset

Mateo Lozano, Oscar oscar.mateo at intel.com
Thu Jun 19 18:21:50 CEST 2014


> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Chris Wilson
> Sent: Thursday, June 19, 2014 8:47 AM
> To: ville.syrjala at linux.intel.com
> Cc: intel-gfx at lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Unpin last_context at reset
> 
> On Wed, Jun 18, 2014 at 10:04:48PM +0300, ville.syrjala at linux.intel.com
> wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > We're forgetting to unpin the last_context from the ggtt at GPU reset
> > time. This leads to the vma pin_count leaking at every reset if the
> > last context wasn't the ring default context. Further use of the same
> > context will trigger the pin_count check in i915_gem_object_pin() and
> > userspace will be faced with EBUSY as a result.
> >
> > This plaques kms_flip rather badly since it performs lots of resets,
> > and every fd has its own default context these days.
> >
> > Fix the problem by properly unpinning the last context at reset.
> 
> Ah, the context reset here is faked because we never restore the default
> context state.  Hmm, in fact, I get the impression that we should just delete
> i915_gem_context_reset(), and make i915_gem_context_enable() function
> correctly after the GPU is reset.
> -Chris

I´m doing something similar in a parallel conversation (see http://lists.freedesktop.org/archives/intel-gfx/2014-June/047744.html). My proposal was to make both the APPGTT switch and default context switch completely synchronous (RING_PP_DIR_BASE/GEN8_RING_PDP for the PPGTT, CCID for the context) in i915_gem_context_enable(). That way we get rid of i915_gem_context_reset() and we don´t need all the gpu reset special casing inside ppgtt->switch_mm.
Daniel wants a completely asynchronous thing, which seems complex without intel_ring_begin, ring->flush, intel_ring_advance, etc..



More information about the Intel-gfx mailing list