[Intel-gfx] [PATCH 1/7] drm/i915: Convert requests to use struct fence

Chris Wilson chris at chris-wilson.co.uk
Fri Jan 8 13:59:07 PST 2016

On Fri, Jan 08, 2016 at 06:47:22PM +0000, John.C.Harrison at Intel.com wrote:
> From: John Harrison <John.C.Harrison at Intel.com>
> There is a construct in the linux kernel called 'struct fence' that is
> intended to keep track of work that is executed on hardware. I.e. it
> solves the basic problem that the drivers 'struct
> drm_i915_gem_request' is trying to address. The request structure does
> quite a lot more than simply track the execution progress so is very
> definitely still required. However, the basic completion status side
> could be updated to use the ready made fence implementation and gain
> all the advantages that provides.
> This patch makes the first step of integrating a struct fence into the
> request. It replaces the explicit reference count with that of the
> fence. It also replaces the 'is completed' test with the fence's
> equivalent. Currently, that simply chains on to the original request
> implementation. A future patch will improve this.

But this forces everyone to do the heavyweight polling until the request
is completed? The seqno is already CPU cacheable and with the exception
of interrupt polling, the question of whether a fence is complete can be
determined by just inspecting that value. Only one place (the
interrupt/signalling path) should ever be concerned about the
complication of how we emit the breadcrumb and interrupt from the ring.

Chris Wilson, Intel Open Source Technology Centre

More information about the Intel-gfx mailing list