linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 31b61f0ef9 drm/i915/execlists: Move reset_active() from schedule-out to schedule-in
The gem_ctx_persistence/smoketest was detecting an odd coherency issue
inside the LRC context image; that the address of the ring buffer did
not match our associated struct intel_ring. As we set the address into
the context image when we pin the ring buffer into place before the
context is active, that leaves the question of where did it get
overwritten. Either the HW context save occurred after our pin which
would imply that our idle barriers are broken, or we overwrote the
context image ourselves. It is only in reset_active() where we dabble
inside the context image outside of a serialised path from schedule-out;
but we could equally perform the operation inside schedule-in which is
then fully serialised with the context pin -- and remains serialised by
the engine pulse with kill_context(). (The only downside, aside from
doing more work inside the engine->active.lock, was the plan to merge
all the reset paths into doing their context scrubbing on schedule-out
needs more thought.)

Fixes: d12acee84f ("drm/i915/execlists: Cancel banned contexts on schedule-out")
Testcase: igt/gem_ctx_persistence/smoketest
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191111133205.11590-3-chris@chris-wilson.co.uk
2019-11-11 16:37:05 +00:00
..
display drm/i915: Split a setting of MSA to MST and SST 2019-11-11 16:25:16 +02:00
gem drm/i915/userptr: Handle unlocked gup retries 2019-11-11 15:46:45 +00:00
gt drm/i915/execlists: Move reset_active() from schedule-out to schedule-in 2019-11-11 16:37:05 +00:00
gvt drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
oa drm/i915/tgl: Add perf support on TGL 2019-10-29 12:53:54 +02:00
selftests drm/i915/selftests: Complete transition to a real struct file mock 2019-11-08 10:17:41 +00:00
i915_active_types.h drm/i915: Coordinate i915_active with its own mutex 2019-10-04 15:39:12 +01:00
i915_active.c drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
i915_active.h drm/i915/selftests: Flush all active callbacks 2019-11-02 08:34:53 +00:00
i915_buddy.c drm/i915/buddy: add missing call to i915_global_register 2019-09-09 10:58:20 +01:00
i915_buddy.h
i915_cmd_parser.c
i915_debugfs.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
i915_debugfs.h
i915_drv.c drm/i915/selftests: Complete transition to a real struct file mock 2019-11-08 10:17:41 +00:00
i915_drv.h drm/i915/gt: Call intel_gt_sanitize() directly 2019-11-01 14:47:36 +00:00
i915_fixed.h
i915_gem_evict.c drm/i915: Move request runtime management onto gt 2019-10-04 15:39:26 +01:00
i915_gem_fence_reg.c drm/i915: set num_fence_regs to 0 if there is no aperture 2019-10-29 10:35:47 +00:00
i915_gem_fence_reg.h drm/i915: Store i915_ggtt as the backpointer on fence registers 2019-10-16 19:41:36 +01:00
i915_gem_gtt.c drm/i915: Leave the aliasing-ppgtt size alone 2019-11-07 10:52:14 +00:00
i915_gem_gtt.h drm/i915: define i915_ggtt_has_aperture 2019-10-29 10:31:40 +00:00
i915_gem.c drm/i915/gt: Call intel_gt_sanitize() directly 2019-11-01 14:47:36 +00:00
i915_gem.h drm/i915: Taint the kernel on dumping the GEM ftrace buffer 2019-11-11 12:46:12 +00:00
i915_getparam.c drm/i915/perf: introduce a versioning of the i915-perf uapi 2019-10-14 21:30:25 +01:00
i915_globals.c
i915_globals.h
i915_gpu_error.c drm/i915: Remove unwanted rcu_read_lock/unlock 2019-11-06 22:12:45 +00:00
i915_gpu_error.h drm/i915/tgl: Add gam instdone 2019-10-30 09:15:27 +00:00
i915_ioc32.c
i915_irq.c drm/i915/tgl: Handle AUX interrupts for TC ports 2019-10-28 08:27:04 -07:00
i915_irq.h drm/i915: Extract the GuC interrupt handlers 2019-10-26 19:28:59 +01:00
i915_memcpy.c
i915_memcpy.h
i915_mm.c
i915_params.c drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
i915_params.h drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
i915_pci.c drm/i915/display/cnl+: Handle fused off DSC 2019-10-29 12:12:49 -07:00
i915_perf_types.h drm/i915/perf: Describe structure members in documentation 2019-10-24 15:01:35 +01:00
i915_perf.c drm/i915/perf: always consider holding preemption a privileged op 2019-11-11 12:14:01 +02:00
i915_perf.h drm/i915/perf: introduce a versioning of the i915-perf uapi 2019-10-14 21:30:25 +01:00
i915_pmu.c drm/i915/pmu: "Frequency" is reported as accumulated cycles 2019-11-11 11:59:12 +00:00
i915_pmu.h drm/i915/pmu: Support multiple GPUs 2019-10-17 10:50:47 +01:00
i915_priolist_types.h drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_pvinfo.h
i915_query.c drm/i915: add support for perf configuration queries 2019-10-14 21:30:26 +01:00
i915_query.h
i915_reg.h drm/i915: Expose C8 on VLV/CHV sprite planes 2019-11-04 17:59:06 +02:00
i915_request.c drm/i915: Extract GT render power state management 2019-10-26 19:28:59 +01:00
i915_request.h drm/i915: Mark up "sentinel" requests 2019-10-12 08:51:17 +01:00
i915_scatterlist.c
i915_scatterlist.h drm/i915: s/for_each_sgt_dma/for_each_sgt_daddr/ 2019-08-29 21:59:16 +01:00
i915_scheduler_types.h drm/i915: Note the addition of timeslicing to the pretend scheduler 2019-10-11 09:36:16 +01:00
i915_scheduler.c drm/i915: Protect request peeking with RCU 2019-11-04 10:01:36 +00:00
i915_scheduler.h drm/i915/execlists: Don't merely skip submission if maybe timeslicing 2019-10-18 11:23:26 +01:00
i915_selftest.h
i915_suspend.c drm/i915: Drop struct_mutex from suspend state save/restore 2019-10-04 15:39:41 +01:00
i915_suspend.h
i915_sw_fence_work.c drm/i915: Generalise the clflush dma-worker 2019-08-22 08:27:44 +01:00
i915_sw_fence_work.h drm/i915: Generalise the clflush dma-worker 2019-08-22 08:27:44 +01:00
i915_sw_fence.c Merge drm/drm-next into drm-intel-next-queued 2019-08-22 00:10:36 -07:00
i915_sw_fence.h Merge drm/drm-next into drm-intel-next-queued 2019-08-22 00:10:36 -07:00
i915_switcheroo.c drm/i915: split out i915_switcheroo.[ch] from i915_drv.c 2019-10-06 11:25:00 +03:00
i915_switcheroo.h drm/i915: split out i915_switcheroo.[ch] from i915_drv.c 2019-10-06 11:25:00 +03:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Extract GT render power state management 2019-10-26 19:28:59 +01:00
i915_sysfs.h
i915_trace_points.c
i915_trace.h drm/i915: Move context management under GEM 2019-10-04 15:39:34 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915: Rename "inject_load_failure" module parameter 2019-10-29 15:37:57 +00:00
i915_utils.h drm/i915: Fix i915_inject_load_error() name to read *_probe_* 2019-10-29 15:37:57 +00:00
i915_vgpu.c drm/i915: to make vgpu ppgtt notificaiton as atomic operation 2019-09-06 09:53:12 -07:00
i915_vgpu.h
i915_vma.c drm/i915: Split detaching and removing the vma 2019-10-31 14:52:19 +00:00
i915_vma.h drm/i915: Lift i915_vma_parked() onto the gt 2019-10-21 21:07:56 +01:00
intel_csr.c drm/i915/dmc: Update ICL DMC version to v1.09 2019-09-27 10:20:39 -07:00
intel_csr.h
intel_device_info.c drm/i915/display/cnl+: Handle fused off DSC 2019-10-29 12:12:49 -07:00
intel_device_info.h drm/i915/display/cnl+: Handle fused off DSC 2019-10-29 12:12:49 -07:00
intel_gvt.c
intel_gvt.h
intel_memory_region.c drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
intel_memory_region.h drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
intel_pch.c drm/i915/tgl: Add second TGL PCH ID 2019-11-06 16:15:27 -08:00
intel_pch.h drm/i915/tgl: Add second TGL PCH ID 2019-11-06 16:15:27 -08:00
intel_pm.c drm/i915: Perform automated conversions for plane uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_pm.h drm/i915: Extract GT render power state management 2019-10-26 19:28:59 +01:00
intel_region_lmem.c drm/i915/lmem: fixup fake lmem teardown 2019-11-06 14:34:10 +00:00
intel_region_lmem.h drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
intel_runtime_pm.c drm/i915/display: abstract all vgaarb access to intel_vga.[ch] 2019-10-02 13:31:54 +03:00
intel_runtime_pm.h
intel_sideband.c
intel_sideband.h
intel_uncore.c drm/i915/tgl: Introduce gen12 forcewake ranges 2019-09-13 20:07:36 +01:00
intel_uncore.h drm/i915: Only apply a rmw mmio update if the value changes 2019-09-17 15:25:40 +01:00
intel_wakeref.c
intel_wakeref.h
intel_wopcm.c
intel_wopcm.h
Kconfig drm/i915: Put future HW and their uAPIs under STAGING & BROKEN 2019-10-27 15:47:10 +00:00
Kconfig.debug drm/i915/selftests: Replace mock_file hackery with drm's true fake 2019-11-07 21:22:16 +00:00
Kconfig.profile drm/i915/gt: Make timeslice duration configurable 2019-10-29 16:23:55 +00:00
Kconfig.unstable drm/i915/lmem: add the fake lmem region 2019-10-31 20:41:47 +00:00
Makefile drm/i915/selftests: Wrap vm_mmap() around GEM objects 2019-11-07 21:22:58 +00:00