On ma, 2016-08-01 at 10:10 +0100, 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. > > Furthermore with the consolidation of managing the activity tracking > centrally, we can look forward to using RCU to enable lockless lookup of > the current active requests for an object. In the future, we will be > able to query the status or wait upon rendering to an object without > even touching the struct_mutex BKL. > > All told, less code, simpler and faster, and more extensible. > > v2: Add a typedef for the function pointer for convenience later. > v3: Make the noop retirement callback explicit. Allow passing NULL to > the init_gem_active() which is expanded to a common noop function. s/init_gem_active/init_request_active/ Assuming you kept the changes to those, Reviewed-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Regards, Joonas -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx