[Intel-gfx] [PATCH 02/11] drm/i915: Refactor activity tracking for requests

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Dec 16 09:16:19 PST 2015


On 14/12/15 11:36, Chris Wilson wrote:
> With the introduction of requests, we amplified the number of atomic
> refcounted objects we use and update every execbuffer; from none to
> several references, and a set of references that need to be changed. We
> also introduced interesting side-effects in the order of retiring
> requests and objects.
> Instead of independently tracking the last request for an object, track
> the active objects for each request. The object will reside in the
> buffer list of its most recent active request and so we reduce the kref
> interchange to a list_move. Now retirements are entirely driven by the
> request, dramatically simplifying activity tracking on the object
> themselves, and removing the ambiguity between retiring objects and
> retiring requests.
> All told, less code, simpler and faster, and more extensible.

I get the general idea but it seems unfinished. For example there is no 
handling for last_write and last_fence. So as for bisectability 
requirement it does not seem appropriate.

I also wanted to suggest splitting out the req->list to link renaming 
but see you've already done it in your branch.

I915_BO_ACTIVE_SHIFT is undefined up to and including this patch.

Variable naming conventions for requests is still a mess but whatever.

And I don't like drm_i915_gem_request_active, wouldn't 
drm_i915_gem_active_request be better?



More information about the Intel-gfx mailing list