linux_dsm_epyc7002/drivers/gpu/drm/i915/selftests
Chris Wilson 1bc6a60143 drm/i915/execlists: Track inflight CCID
The presumption is that by using a circular counter that is twice as
large as the maximum ELSP submission, we would never reuse the same CCID
for two inflight contexts.

However, if we continually preempt an active context such that it always
remains inflight, it can be resubmitted with an arbitrary number of
paired contexts. As each of its paired contexts will use a new CCID,
eventually it will wrap and submit two ELSP with the same CCID.

Rather than use a simple circular counter, switch over to a small bitmap
of inflight ids so we can avoid reusing one that is still potentially
active.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1796
Fixes: 2935ed5339 ("drm/i915: Remove logical HW ID")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.5+
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200428184751.11257-2-chris@chris-wilson.co.uk
(cherry picked from commit 5c4a53e3b1)
(cherry picked from commit 134711240307d5586ae8e828d2699db70a8b74f2)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2020-05-06 15:37:59 -07:00
..
i915_active.c drm/i915/selftests: Apply a heavy handed flush to i915_active 2020-03-07 00:05:54 +00:00
i915_buddy.c drm/i915/selftests: try to rein in alloc_smoke 2020-03-06 14:33:15 +00:00
i915_gem_evict.c drm/i915/selftests: Be explicit in ERR_PTR handling 2019-11-20 10:37:43 +00:00
i915_gem_gtt.c drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
i915_gem.c drm/i915/gt: Rename i915_gem_restore_ggtt_mappings() for its new placement 2020-01-30 21:35:37 +00:00
i915_live_selftests.h drm/i915: Add mechanism to submit a context WA on ring submission 2020-03-06 08:59:06 +00:00
i915_mock_selftests.h drm/i915/selftests: Make headers self-contained 2020-01-03 13:33:36 +00:00
i915_perf_selftests.h drm/i915/selftests/perf: measure memcpy bw between regions 2020-01-29 13:13:50 +00:00
i915_perf.c drm/i915: Serialise with engine-pm around requests on the kernel_context 2019-11-25 13:17:18 +00:00
i915_random.c drm/i915/selftests: Extract random_offset() for use with a prng 2019-10-02 15:30:44 +01:00
i915_random.h drm/i915: Add missing include file <linux/math64.h> 2020-01-07 14:04:31 +00:00
i915_request.c drm/i915: Remove i915->kernel_context 2019-12-21 16:37:10 +00:00
i915_selftest.c drm/i915/selftests: Perform some basic cycle counting of MI ops 2019-11-11 18:30:13 +00:00
i915_sw_fence.c
i915_syncmap.c
i915_vma.c drm/i915/execlists: Track inflight CCID 2020-05-06 15:37:59 -07:00
igt_atomic.c drm/i915/selftests: Move igt_atomic_section[] out of the header 2020-01-03 13:31:39 +00:00
igt_atomic.h drm/i915/selftests: Move igt_atomic_section[] out of the header 2020-01-03 13:31:39 +00:00
igt_flush_test.c drm/i915: Move request runtime management onto gt 2019-10-04 15:39:26 +01:00
igt_flush_test.h drm/i915: Drop struct_mutex from around i915_retire_requests() 2019-10-04 15:39:17 +01:00
igt_live_test.c drm/i915/selftests: Use GT engines in igt_live_test 2019-10-22 12:16:42 +01:00
igt_live_test.h drm/i915/selftests: Make headers self-contained 2020-01-03 13:33:36 +00:00
igt_mmap.c drm/i915/selftests: Wrap vm_mmap() around GEM objects 2019-11-07 21:22:58 +00:00
igt_mmap.h drm/i915/selftests: Wrap vm_mmap() around GEM objects 2019-11-07 21:22:58 +00:00
igt_reset.c drm/i915: Pass in intel_gt at some for_each_engine sites 2019-10-18 00:06:27 +01:00
igt_reset.h
igt_spinner.c drm/i915: Apply i915_request_skip() on submission 2020-03-04 14:29:50 +00:00
igt_spinner.h
intel_memory_region.c drm/i915/selftests/perf: measure memcpy bw between regions 2020-01-29 13:13:50 +00:00
intel_uncore.c drm/i915/selftests: Move uncore fw selftests to operate on intel_gt 2019-10-22 20:44:52 +01:00
lib_sw_fence.c
lib_sw_fence.h
mock_drm.h drm/i915/selftests: make mock_drm.h self-contained 2019-12-23 12:38:43 +02:00
mock_gem_device.c drm/i915: stop assigning drm->dev_private pointer 2020-02-26 10:36:35 +02:00
mock_gem_device.h
mock_gtt.c drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
mock_gtt.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
mock_region.c drm/i915/gem: Distinguish each object type 2019-10-22 16:23:32 +01:00
mock_region.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
mock_request.c
mock_request.h
mock_uncore.c drm/i915/selftests: Assign the intel_runtime_pm pointer for mock_uncore 2019-10-08 16:21:50 +01:00
mock_uncore.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
scatterlist.c