drm/i915: Allow sharing the idle-barrier from other kernel requests
By placing our idle-barriers in the i915_active fence tree, we expose those for reuse by other components that are issuing requests along the kernel_context. Reusing the proto-barrier active_node is perfectly fine as the new request implies a context-switch, and so an opportune point to run the idle-barrier. However, the proto-barrier is not equivalent to a normal active_node and care must be taken to avoid dereferencing the ERR_PTR used as its request marker. v2: Comment the more egregious cheek v3: A glossary! Reported-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes:ce476c80b8
("drm/i915: Keep contexts pinned until after the next kernel context switch") Fixes:a9877da2d6
("drm/i915/oa: Reconfigure contexts on the fly") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190802100015.1281-1-chris@chris-wilson.co.uk
このコミットが含まれているのは:
@@ -15,6 +15,7 @@ selftest(workarounds, intel_workarounds_live_selftests)
|
||||
selftest(timelines, intel_timeline_live_selftests)
|
||||
selftest(requests, i915_request_live_selftests)
|
||||
selftest(active, i915_active_live_selftests)
|
||||
selftest(gt_contexts, intel_context_live_selftests)
|
||||
selftest(objects, i915_gem_object_live_selftests)
|
||||
selftest(mman, i915_gem_mman_live_selftests)
|
||||
selftest(dmabuf, i915_gem_dmabuf_live_selftests)
|
||||
@@ -24,7 +25,7 @@ selftest(gtt, i915_gem_gtt_live_selftests)
|
||||
selftest(gem, i915_gem_live_selftests)
|
||||
selftest(evict, i915_gem_evict_live_selftests)
|
||||
selftest(hugepages, i915_gem_huge_page_live_selftests)
|
||||
selftest(contexts, i915_gem_context_live_selftests)
|
||||
selftest(gem_contexts, i915_gem_context_live_selftests)
|
||||
selftest(blt, i915_gem_object_blt_live_selftests)
|
||||
selftest(client, i915_gem_client_blt_live_selftests)
|
||||
selftest(reset, intel_reset_live_selftests)
|
||||
|
新しいイシューから参照
ユーザーをブロックする