Re: [PATCH] drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation

Daniel Vetter
2014-06-10T13:17:45Z

On Tue, Jun 10, 2014 at 11:34:34AM +0100, Chris Wilson wrote:
> On Fri, May 30, 2014 at 02:16:30PM +0100, Chris Wilson wrote:
> > Fallout from
> >
> > commit 46470fc932ac8a0e8317a220b3f4ea4ed903338e
> > Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > Date: Wed May 21 19:01:06 2014 +0300
> >
> > drm/i915: Add null state batch to active list
> >
> > undid the earlier fix of only marking the ctx as initialised after it is
> > saved by the hardware during a SET_CONTEXT operation.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Damien Lespiau <damien.lespiau@intel.com>
> > Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> > Cc: Ben Widawsky <ben@bwidawsk.net>
>
> Ping. Ben's comments do not impact upon the urgent need for this fix.

Ok, this code is extremely convoluted. ctx->last_ring is terrible, and we
should make a clear disdinction of which ctx->foo fields are for the
logical context and which for the per-engine stuff. Will be much more
important for execlists so that we properly fan out the state.

I'm ranting here a bit since it took me a while to realize that
->is_initialized is _only_ for the RCS stuff. I guess we should have
ctx->obj[ring] and ctx->is_initialized[ring] or even better, a substruct
i915_hw_context with an array.

</rant>

With that out of the way, this is Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch