linux_dsm_epyc7002/drivers/gpu/drm/i915/gt
Chris Wilson 90a987205c drm/i915/gt: Only swap to a random sibling once upon creation
The danger in switching at random upon intel_context_pin is that the
context may still actually be inflight, as it will not be scheduled out
until a context switch after it is complete -- that may be a long time
after we do a final intel_context_unpin.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2118
Fixes: 6d06779e86 ("drm/i915: Load balancing across a virtual engine")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: <stable@vger.kernel.org> # v5.3+
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200713160549.17344-1-chris@chris-wilson.co.uk
2020-07-13 17:57: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/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +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: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01: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/gt: Optimise aliasing-ppgtt allocations 2020-07-09 20:40:49 +01:00
gen6_ppgtt.h
gen6_renderstate.c
gen7_renderclear.c drm/i915: Release shortlived maps of longlived objects 2020-07-08 22:05:50 +01: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 drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_param.h drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_sseu.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +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/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +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: Be defensive in the face of false CS events 2020-07-10 15:24:17 +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: Be defensive in the face of false CS events 2020-07-10 15:24:17 +01:00
intel_gt_irq.h drm/i915/gt: Reorganise gen8+ interrupt handler 2020-01-28 12:30:00 +00:00
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/gem: Unpin idle contexts from kswapd reclaim 2020-07-08 22:05:49 +01:00
intel_gt_requests.h
intel_gt_types.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_gt.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_gt.h drm/i915: Introduce gt_init_mmio 2020-07-08 21:07:13 +01:00
intel_gtt.c drm/i915/gt: Pull marking vm as closed underneath the vm->mutex 2020-02-28 12:33:07 +00:00
intel_gtt.h drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
intel_llc_types.h
intel_llc.c drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
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/gt: Only swap to a random sibling once upon creation 2020-07-13 17:57:38 +01:00
intel_lrc.h drm/i915: Make define for lrc state offset 2020-04-24 00:52:14 +01:00
intel_mocs.c drm/i915/gt: Refactor l3cc/mocs availability 2020-02-19 14:09:18 +00:00
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: Release shortlived maps of longlived objects 2020-07-08 22:05:50 +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: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +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: Release shortlived maps of longlived objects 2020-07-08 22:05:50 +01:00
intel_ring_types.h drm/i915/gt: Avoid resetting ring->head outside of its timeline mutex 2020-02-11 12:03:22 +00:00
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/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_rps.h drm/i915/gt: Sanitize RPS interrupts upon resume 2020-05-03 08:24:36 +01:00
intel_sseu_debugfs.c drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
intel_sseu_debugfs.h drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
intel_sseu.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_sseu.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
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 drm/i915/gt: Skip rmw for masked registers 2020-02-01 09:21:57 +00:00
intel_workarounds.c drm/i915/tgl: Implement WAs 18011464164 and 22010931296 2020-07-09 10:05:07 -07: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 drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
selftest_llc.h
selftest_lrc.c drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +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 drm/i915/guc: Kill USES_GUC_SUBMISSION macro 2020-02-20 17:48:03 +00:00
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: Fix compare functions provided for sorting 2020-07-09 18:21:31 +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 drm/i915/gt: Expose engine properties via sysfs 2020-02-28 22:03:19 +00:00