Re: [PATCH] drm/i915/guc: Defer LRC context unpin or release

Yu Dai
2015-11-06T23:44:15Z

On 11/06/2015 02:09 PM, Chris Wilson wrote:
> On Fri, Nov 06, 2015 at 01:56:59PM -0800, yu.dai@intel.com wrote:
> > From: Alex Dai <yu.dai@intel.com>
> >
> > Can't immediately free LRC context (neither unpin it) even all
> > its referenced requests are completed, because HW still need a
> > short period of time to save data to LRC status page. It is safe
> > to free LRC when HW completes a request from a different LRC.
>
> See the legacy context switch mechanism for code to reuse - at least
> reuse the pointers rather than add yet another almost identically named
> one to intel_engine_cs.
> -Chris
>
Sorry that I accidentally submitted wrong version of this patch. The
correct one is here: https://patchwork.freedesktop.org/patch/64094/.
I use 'retired_ctx' to avoid confusing with legacy last_context in
intel_engine_cs. The 'retired' means all gem_request ref on it have
retired. However, the unpin or free of its backing BO is deferred until
HW completes another batch from a different LRC. The ref/unref concept
is similar to the legacy context switch. But I don't believe there is
any code we can reuse here.

Thanks,
Alex