> -----Original Message----- > From: Intel-gfx [mailto:intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf > Of Chris Wilson > Sent: Thursday, June 19, 2014 8:47 AM > To: ville.syrjala@xxxxxxxxxxxxxxx > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH] drm/i915: Unpin last_context at reset > > On Wed, Jun 18, 2014 at 10:04:48PM +0300, ville.syrjala@xxxxxxxxxxxxxxx > wrote: > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > > > 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.. _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx