linux_dsm_epyc7002/drivers/gpu/drm/i915/gt
Chris Wilson 8567774e87 drm/i915/gt: Pin the rings before marking active
On eviction, we acquire the vm->mutex and then wait on the vma->active.
Therefore when binding and pinning the vma, we must follow the same
sequence, lock/pin the vma then mark it active. Otherwise, we mark the
vma as active, then wait for the vm->mutex, and meanwhile the evictor
holding the mutex waits upon us to complete our activity.

Fixes: 8ccfc20a7d ("drm/i915/gt: Mark ring->vma as active while pinned")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: <stable@vger.kernel.org> # v5.6+
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200706170138.8993-1-chris@chris-wilson.co.uk
2020-07-07 10:40:38 +01:00
..
selftests
shaders drm/i915: Include asm sources for {ivb, hsw}_clear_kernel.c 2020-06-15 11:53:40 -07:00
uc drm/i915/guc: Expand guc_info debugfs with more information 2020-07-03 10:27:29 +01:00
debugfs_engines.c drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
debugfs_engines.h
debugfs_gt_pm.c drm/i915/gt: Move rps.enabled/active to flags 2020-04-30 00:57:35 +01:00
debugfs_gt_pm.h
debugfs_gt.c drm/i915/uc: Move uC debugfs to its own folder under GT 2020-03-26 21:23:03 +00:00
debugfs_gt.h drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
gen2_engine_cs.c drm/i915/gt: Flush gen3 relocs harder, again 2020-06-13 10:30:01 +01:00
gen2_engine_cs.h drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_engine_cs.c drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_engine_cs.h drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_ppgtt.c drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
gen6_ppgtt.h
gen6_renderstate.c
gen7_renderclear.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
gen7_renderclear.h drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
gen7_renderstate.c
gen8_ppgtt.c drm/i915: Remove duplicate inline specifier on write_pte 2020-05-13 20:01:28 +01:00
gen8_ppgtt.h
gen8_renderstate.c
gen9_renderstate.c
hsw_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
intel_breadcrumbs.c drm/i915/gt: Transfer old virtual breadcrumbs to irq_worker 2020-05-14 10:09:31 +01:00
intel_context_param.c
intel_context_param.h
intel_context_sseu.c drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
intel_context_types.h drm/i915/execlists: Avoid reusing the same logical CCID 2020-04-28 22:17:36 +01:00
intel_context.c drm/i915/gt: Pin the rings before marking active 2020-07-07 10:40:38 +01:00
intel_context.h drm/i915: Use explicit flag to mark unreachable intel_context 2020-03-26 10:21:04 -07:00
intel_engine_cs.c drm/i915/gt: Show the culmative runtime as part of the engine info 2020-06-19 21:13:45 +01:00
intel_engine_heartbeat.c drm/i915/gt: Move the heartbeat into the high priority system wq 2020-07-02 12:30:24 +01:00
intel_engine_heartbeat.h
intel_engine_pm.c drm/i915/gt: Stop holding onto the pinned_default_state 2020-05-05 21:12:33 +01:00
intel_engine_pm.h drm/i915: Extend intel_wakeref to support delayed puts 2020-03-23 12:51:05 +00:00
intel_engine_types.h drm/i915/gt: Harden the heartbeat against a stuck driver 2020-07-02 12:30:23 +01:00
intel_engine_user.c drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_engine_user.h
intel_engine.h drm/i915/gt: Always report the sample time for busy-stats 2020-06-18 09:26:54 +01:00
intel_ggtt_fencing.c drm/i915/gt: Make fence revocation unequivocal 2020-04-01 23:34:17 +01:00
intel_ggtt_fencing.h drm/i915/gt: Store the fence details on the fence 2020-04-01 23:34:16 +01:00
intel_ggtt.c drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
intel_gpu_commands.h drm/i915/gen12: Fix HDC pipeline flush 2020-05-07 07:44:41 +01:00
intel_gt_buffer_pool_types.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_buffer_pool.c drm/i915/gt: Cancel the flush worker more thoroughly 2020-05-25 16:45:17 +01:00
intel_gt_buffer_pool.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_clock_utils.c drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
intel_gt_clock_utils.h drm/i915/gt: Use the RPM config register to determine clk frequencies 2020-04-24 19:10:17 +01:00
intel_gt_irq.c drm/i915/gt: Yield the timeslice if caught waiting on a user semaphore 2020-04-07 14:43:58 +01:00
intel_gt_irq.h
intel_gt_pm_irq.c
intel_gt_pm_irq.h
intel_gt_pm.c drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_gt_pm.h
intel_gt_requests.c drm/i915/gt: Check carefully for an idle engine in wait-for-idle 2020-04-23 16:16:32 +01:00
intel_gt_requests.h
intel_gt_types.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt.c drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_gt.h drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_gtt.c
intel_gtt.h drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
intel_llc_types.h
intel_llc.c
intel_llc.h
intel_lrc_reg.h drm/i915/selftests: Add context batchbuffers registers to live_lrc_fixed 2020-04-24 00:36:13 +01:00
intel_lrc.c drm/i915/execlists: Lift opportunistic process_csb to before engine lock 2020-06-13 10:15:54 +01:00
intel_lrc.h drm/i915: Make define for lrc state offset 2020-04-24 00:52:14 +01:00
intel_mocs.c
intel_mocs.h
intel_ppgtt.c drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
intel_rc6_types.h
intel_rc6.c drm/i915: Remove cnl pre-prod workarounds 2020-05-04 18:44:52 +03:00
intel_rc6.h
intel_renderstate.c drm/i915/gt: Replace manual kmap_atomic() with pin_map for renderstate 2020-06-20 09:57:10 +01:00
intel_renderstate.h
intel_reset_types.h drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_reset.c drm/i915: Print caller when tainting for CI 2020-07-06 19:21:07 +01:00
intel_reset.h drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_ring_submission.c drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
intel_ring_types.h
intel_ring.c drm/i915/gt: Incrementally check for rewinding 2020-06-10 15:42:47 +01:00
intel_ring.h drm/i915/gt: Mark up racy read of intel_ring.head 2020-04-08 13:40:07 +01:00
intel_rps_types.h drm/i915/gt: Switch to manual evaluation of RPS 2020-04-30 00:57:37 +01:00
intel_rps.c drm/i915/gt: Initialise rps timestamp 2020-06-19 20:00:18 +01:00
intel_rps.h drm/i915/gt: Sanitize RPS interrupts upon resume 2020-05-03 08:24:36 +01:00
intel_sseu.c drm/i915/perf: introduce global sseu pinning 2020-03-17 15:27:55 +02:00
intel_sseu.h
intel_timeline_types.h
intel_timeline.c drm/i915: Make intel_timeline_init static 2020-05-11 12:52:08 +01:00
intel_timeline.h drm/i915: Make intel_timeline_init static 2020-05-11 12:52:08 +01:00
intel_workarounds_types.h
intel_workarounds.c drm/i915/gt: Move gen4 GT workarounds from init_clock_gating to workarounds 2020-06-11 16:11:39 +01:00
intel_workarounds.h
ivb_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
mock_engine.c drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
mock_engine.h
selftest_context.c drm/i915: Drop no-semaphore boosting 2020-05-14 06:14:33 +01:00
selftest_engine_cs.c drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
selftest_engine_heartbeat.c drm/i915/params: switch to device specific parameters 2020-06-22 23:26:40 +03:00
selftest_engine_heartbeat.h drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_engine_pm.c drm/i915/gt: Always report the sample time for busy-stats 2020-06-18 09:26:54 +01:00
selftest_engine.c
selftest_engine.h
selftest_gt_pm.c drm/i915/selftests: Measure CS_TIMESTAMP 2020-05-21 09:30:16 +01:00
selftest_hangcheck.c drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_llc.c
selftest_llc.h
selftest_lrc.c drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_mocs.c drm/i915/gt: Incrementally check for rewinding 2020-06-10 15:42:47 +01:00
selftest_rc6.c drm/i915: Print caller when tainting for CI 2020-07-06 19:21:07 +01:00
selftest_rc6.h
selftest_reset.c
selftest_ring_submission.c drm/i915/selftests: Always flush before unpining after writing 2020-05-11 16:50:04 +01:00
selftest_ring.c drm/i915/gt: Incrementally check for rewinding 2020-06-10 15:42:47 +01:00
selftest_rps.c drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_rps.h drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
selftest_timeline.c drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_workarounds.c drm/i915/selftests: Ignore autoincrementing timestamp on verfifying whitelists 2020-06-02 23:14:42 +01:00
shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
shmem_utils.h drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
st_shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
sysfs_engines.c drm/i915: Show per-engine default property values in sysfs 2020-05-14 08:25:05 +01:00
sysfs_engines.h