linux_dsm_epyc7002/drivers/gpu/drm/i915/selftests
Chris Wilson 754c9fd576 drm/i915: Protect the request->global_seqno with the engine->timeline lock
A request is assigned a global seqno only when it is on the hardware
execution queue. The global seqno can be used to maintain a list of
requests on the same engine in retirement order, for example for
constructing a priority queue for waiting. Prior to its execution, or
if it is subsequently removed in the event of preemption, its global
seqno is zero. As both insertion and removal from the execution queue
may operate in IRQ context, it is not guarded by the usual struct_mutex
BKL. Instead those relying on the global seqno must be prepared for its
value to change between reads. Only when the request is complete can
the global seqno be stable (due to the memory barriers on submitting
the commands to the hardware to write the breadcrumb, if the HWS shows
that it has passed the global seqno and the global seqno is unchanged
after the read, it is indeed complete).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170223074422.4125-9-chris@chris-wilson.co.uk
2017-02-23 14:49:32 +00:00
..
huge_gem_object.c drm/i915: Create a fake object for testing huge allocations 2017-02-13 20:45:34 +00:00
huge_gem_object.h drm/i915: Create a fake object for testing huge allocations 2017-02-13 20:45:34 +00:00
i915_gem_coherency.c drm/i915: Silence compiler warning for seltests/i915_gem_coherency 2017-02-14 22:30:21 +00:00
i915_gem_context.c drm/i915: Force an aliasing_ppgtt test for context execution 2017-02-13 20:46:46 +00:00
i915_gem_dmabuf.c drm/i915: Add a live dmabuf selftest 2017-02-13 20:45:51 +00:00
i915_gem_evict.c drm/i915: Initial selftests for exercising eviction 2017-02-13 20:46:47 +00:00
i915_gem_gtt.c drm/i915: Convert clflushed pagetables over to WC maps 2017-02-15 10:07:18 +00:00
i915_gem_object.c drm/i915: Test exhaustion of the mmap space 2017-02-13 20:45:45 +00:00
i915_gem_request.c drm/i915: Live testing of empty requests 2017-02-13 20:45:41 +00:00
i915_live_selftests.h drm/i915: Add initial selftests for hang detection and resets 2017-02-13 20:46:53 +00:00
i915_mock_selftests.h drm/i915: Add mock exercise for i915_gem_gtt_reserve 2017-02-13 20:46:48 +00:00
i915_random.c
i915_random.h
i915_selftest.c
i915_vma.c drm/i915: Test creation of partial VMA 2017-02-13 20:46:43 +00:00
intel_breadcrumbs.c drm/i915: Protect the request->global_seqno with the engine->timeline lock 2017-02-23 14:49:32 +00:00
intel_hangcheck.c drm/i915: Add initial selftests for hang detection and resets 2017-02-13 20:46:53 +00:00
intel_uncore.c drm/i915: Sanity check all registers for matching fw domains 2017-02-13 20:45:49 +00:00
mock_context.c drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_context.h drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_dmabuf.c drm/i915: Add some mock tests for dmabuf interop 2017-02-13 20:45:50 +00:00
mock_dmabuf.h drm/i915: Add some mock tests for dmabuf interop 2017-02-13 20:45:50 +00:00
mock_drm.c drm/i915: Mock the GEM device for self-testing 2017-02-13 20:45:28 +00:00
mock_drm.h drm/i915: Mock the GEM device for self-testing 2017-02-13 20:45:28 +00:00
mock_engine.c drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_engine.h drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_gem_device.c drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_gem_device.h drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_gem_object.h drm/i915: Mock the GEM device for self-testing 2017-02-13 20:45:28 +00:00
mock_gtt.c drm/i915: Mock a GGTT for self-testing 2017-02-13 20:45:30 +00:00
mock_gtt.h drm/i915: Mock a GGTT for self-testing 2017-02-13 20:45:30 +00:00
mock_request.c drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
mock_request.h drm/i915: Mock infrastructure for request emission 2017-02-13 20:45:31 +00:00
scatterlist.c