linux_dsm_epyc7002/drivers/gpu/drm/i915/selftests
Chris Wilson 5013eb8cd6 drm/i915: Track the context's seqno in its own timeline HWSP
Now that we have allocated ourselves a cacheline to store a breadcrumb,
we can emit a write from the GPU into the timeline's HWSP of the
per-context seqno as we complete each request. This drops the mirroring
of the per-engine HWSP and allows each context to operate independently.
We do not need to unwind the per-context timeline, and so requests are
always consistent with the timeline breadcrumb, greatly simplifying the
completion checks as we no longer need to be concerned about the
global_seqno changing mid check.

One complication though is that we have to be wary that the request may
outlive the HWSP and so avoid touching the potentially danging pointer
after we have retired the fence. We also have to guard our access of the
HWSP with RCU, the release of the obj->mm.pages should already be RCU-safe.

At this point, we are emitting both per-context and global seqno and
still using the single per-engine execution timeline for resolving
interrupts.

v2: s/fake_complete/mark_complete/

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190128181812.22804-5-chris@chris-wilson.co.uk
2019-01-28 19:07:09 +00:00
..
huge_gem_object.c
huge_gem_object.h
huge_pages.c drm/i915/selftests: Query the vm under test for hugepage support 2019-01-18 09:07:06 +00:00
i915_gem_coherency.c drm/i915/selftests: Mark up rpm wakerefs 2019-01-14 16:18:20 +00:00
i915_gem_context.c drm/i915/selftests: Refactor common live_test framework 2019-01-22 13:01:20 +00:00
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Pull VM lists under the VM mutex. 2019-01-28 16:24:13 +00:00
i915_gem_gtt.c drm/i915: Pull VM lists under the VM mutex. 2019-01-28 16:24:13 +00:00
i915_gem_object.c drm/i915: Syntatic sugar for using intel_runtime_pm 2019-01-14 16:18:25 +00:00
i915_gem.c drm/i915: Syntatic sugar for using intel_runtime_pm 2019-01-14 16:18:25 +00:00
i915_live_selftests.h drm/i915: Allocate a status page for each timeline 2019-01-28 19:07:02 +00:00
i915_mock_selftests.h drm/i915: Allocate a status page for each timeline 2019-01-28 19:07:02 +00:00
i915_random.c drm/i915: Share per-timeline HWSP using a slab suballocator 2019-01-28 19:07:06 +00:00
i915_random.h drm/i915: Share per-timeline HWSP using a slab suballocator 2019-01-28 19:07:06 +00:00
i915_request.c drm/i915/selftests: Refactor common live_test framework 2019-01-22 13:01:20 +00:00
i915_selftest.c
i915_sw_fence.c
i915_syncmap.c
i915_timeline.c drm/i915: Track the context's seqno in its own timeline HWSP 2019-01-28 19:07:09 +00:00
i915_vma.c drm/i915: Move vma lookup to its own lock 2019-01-28 16:24:16 +00:00
igt_flush_test.c
igt_flush_test.h
igt_live_test.c drm/i915/selftests: Refactor common live_test framework 2019-01-22 13:01:20 +00:00
igt_live_test.h drm/i915/selftests: Refactor common live_test framework 2019-01-22 13:01:20 +00:00
igt_reset.c drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_reset.h drm/i915/selftests: Add tests for GT and engine workaround verification 2018-12-04 12:23:19 +00:00
igt_spinner.c drm/i915/selftests: Reorder request allocation vs vma pinning 2018-12-04 17:53:19 +00:00
igt_spinner.h drm/i915/selftests: Extract spinner code 2018-11-30 15:09:00 +00:00
igt_wedge_me.h
intel_breadcrumbs.c
intel_engine_cs.c
intel_guc.c drm/i915/selftests: Mark up rpm wakerefs 2019-01-14 16:18:20 +00:00
intel_hangcheck.c drm/i915: Issue engine resets onto idle engines 2019-01-25 14:27:30 +00:00
intel_lrc.c drm/i915: Pull all the reset functionality together into i915_reset.c 2019-01-16 22:45:31 +00:00
intel_uncore.c
intel_workarounds.c drm/i915: Remove GPU reset dependence on struct_mutex 2019-01-25 14:27:22 +00:00
lib_sw_fence.c
lib_sw_fence.h
mock_context.c drm/i915: Refactor out intel_context_init() 2019-01-22 13:13:53 +00:00
mock_context.h
mock_dmabuf.c
mock_dmabuf.h
mock_drm.c
mock_drm.h
mock_engine.c drm/i915: Track the context's seqno in its own timeline HWSP 2019-01-28 19:07:09 +00:00
mock_engine.h
mock_gem_device.c drm/i915: Move list of timelines under its own lock 2019-01-28 16:24:22 +00:00
mock_gem_device.h
mock_gem_object.h
mock_gtt.c drm/i915/selftests: Create a clean GGTT for vma/gtt selftesting 2019-01-22 12:50:39 +00:00
mock_gtt.h drm/i915/selftests: Create a clean GGTT for vma/gtt selftesting 2019-01-22 12:50:39 +00:00
mock_request.c
mock_request.h
mock_timeline.c drm/i915: Move list of timelines under its own lock 2019-01-28 16:24:22 +00:00
mock_timeline.h
mock_uncore.c
mock_uncore.h
scatterlist.c