summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_request.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2018-07-06 11:39:46 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2018-07-06 18:22:43 +0100
commit5c3f8c221c77ccdce3c2a8b96d196e5f4e2dac0c (patch)
tree99bf2a6ad213c15e7131eb697085d487c77ea19d /drivers/gpu/drm/i915/i915_request.h
parente6bb1d7f1adfcd24ac7d82ab157a8b8809a0d2c8 (diff)
downloadlinux-stable-5c3f8c221c77ccdce3c2a8b96d196e5f4e2dac0c.tar.gz
linux-stable-5c3f8c221c77ccdce3c2a8b96d196e5f4e2dac0c.tar.bz2
linux-stable-5c3f8c221c77ccdce3c2a8b96d196e5f4e2dac0c.zip
drm/i915: Track vma activity per fence.context, not per engine
In the next patch, we will want to be able to use more flexible request timelines that can hop between engines. From the vma pov, we can then not rely on the binding of this request to an engine and so can not ensure that different requests are ordered through a per-engine timeline, and so we must track activity of all timelines. (We track activity on the vma itself to prevent unbinding from HW before the HW has finished accessing it.) v2: Switch to a rbtree for 32b safety (since using u64 as a radixtree index is fraught with aliasing of unsigned longs). v3: s/lookup_active/active_instance/ because we can never agree on names Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180706103947.15919-5-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.h')
-rw-r--r--drivers/gpu/drm/i915/i915_request.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.h b/drivers/gpu/drm/i915/i915_request.h
index a355a081485f..e1c9365dfefb 100644
--- a/drivers/gpu/drm/i915/i915_request.h
+++ b/drivers/gpu/drm/i915/i915_request.h
@@ -380,6 +380,7 @@ static inline void
init_request_active(struct i915_gem_active *active,
i915_gem_retire_fn retire)
{
+ RCU_INIT_POINTER(active->request, NULL);
INIT_LIST_HEAD(&active->link);
active->retire = retire ?: i915_gem_retire_noop;
}