linux_dsm_epyc7002/drivers/gpu/drm/i915/gt
Chris Wilson d8af05ff38 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
2019-08-02 11:53:04 +01:00
..
selftests drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
uc drm/i915/uc: Stop sanitizing enable_guc modparam 2019-08-01 21:13:32 +01:00
gen6_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen7_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen8_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen9_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
intel_breadcrumbs.c
intel_context_types.h drm/i915/gt: Provide a local intel_context.vm 2019-07-30 16:09:35 +01:00
intel_context.c drm/i915: Allow sharing the idle-barrier from other kernel requests 2019-08-02 11:53:04 +01:00
intel_context.h drm/i915: Allow sharing the idle-barrier from other kernel requests 2019-08-02 11:53:04 +01:00
intel_engine_cs.c drm/i915: Fix and improve MCR selection logic 2019-07-19 15:35:19 +01:00
intel_engine_pm.c drm/i915: Allow sharing the idle-barrier from other kernel requests 2019-08-02 11:53:04 +01:00
intel_engine_pm.h drm/i915: Lift intel_engines_resume() to callers 2019-06-26 18:01:01 +01:00
intel_engine_types.h drm/i915: Inline engine->init_context into its caller 2019-07-30 11:50:42 +01:00
intel_engine.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_gpu_commands.h drm/i915/selftests: Ensure we don't clamp a random offset to 32b 2019-07-11 10:06:37 +01:00
intel_gt_pm.c drm/i915/gt: Introduce intel_gt_runtime_suspend/resume 2019-08-01 17:58:54 +01:00
intel_gt_pm.h drm/i915/pmu: Atomically acquire the gt_pm wakeref 2019-08-02 08:08:20 +01:00
intel_gt_types.h drm/i915/guc: prefer intel_gt in guc interrupt functions 2019-07-13 20:11:36 +01:00
intel_gt.c drm/i915/uc: Move uC early functions inside the GT ones 2019-08-01 17:58:52 +01:00
intel_gt.h drm/i915/gt: Move gt_cleanup_early out of gem_cleanup_early 2019-08-01 17:58:50 +01:00
intel_hangcheck.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_lrc_reg.h
intel_lrc.c drm/i915: Remove lrc default desc from GEM context 2019-08-01 17:37:02 +01:00
intel_lrc.h
intel_mocs.c drm/i915: Move MOCS setup to intel_mocs.c 2019-07-31 07:40:35 -07:00
intel_mocs.h drm/i915: Move MOCS setup to intel_mocs.c 2019-07-31 07:40:35 -07:00
intel_renderstate.c drm/i915: Inline engine->init_context into its caller 2019-07-30 11:50:42 +01:00
intel_renderstate.h drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
intel_reset_types.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_reset.c drm/i915/uc: Unify uC platform check 2019-07-25 07:30:41 +01:00
intel_reset.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_ringbuffer.c drm/i915/gt: Provide a local intel_context.vm 2019-07-30 16:09:35 +01:00
intel_sseu.c
intel_sseu.h
intel_timeline_types.h drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
intel_timeline.c drm/i915/gt: Always call kref_init for the timeline 2019-06-26 07:25:54 +01:00
intel_timeline.h drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
intel_workarounds_types.h drm/i915: Add engine name to workaround debug print 2019-07-12 09:55:30 +01:00
intel_workarounds.c drm/i915/icl: Add Wa_1409178092 2019-07-19 15:35:21 +01:00
intel_workarounds.h drm/i915: Convert gt workarounds to intel_gt 2019-06-21 13:48:25 +01:00
Makefile drm/i915: use upstream version of header tests 2019-07-30 12:11:57 +03:00
mock_engine.c drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
mock_engine.h
selftest_context.c drm/i915: Allow sharing the idle-barrier from other kernel requests 2019-08-02 11:53:04 +01:00
selftest_engine_cs.c
selftest_hangcheck.c drm/i915/selftests: Careful not to flush hang_fini on error setups 2019-07-29 11:00:18 +01:00
selftest_lrc.c drm/i915/selftests: Pass intel_context to igt_spinner 2019-07-31 09:45:27 +01:00
selftest_reset.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
selftest_timeline.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
selftest_workarounds.c drm/i915/selftests: Pass intel_context to igt_spinner 2019-07-31 09:45:27 +01:00