1. 05 8月, 2016 2 次提交
  2. 04 8月, 2016 1 次提交
    • C
      drm/i915: Refactor activity tracking for requests · fa545cbf
      Chris Wilson 提交于
      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_request_active() which is expanded to a common noop function.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1470293567-10811-16-git-send-email-chris@chris-wilson.co.uk
      fa545cbf
  3. 03 8月, 2016 2 次提交
  4. 29 7月, 2016 1 次提交
  5. 27 7月, 2016 1 次提交
  6. 20 7月, 2016 1 次提交
  7. 14 7月, 2016 2 次提交