linux/drivers/gpu/drm/i915
Chris Wilson 611cdf3695 drm/i915: Disable EXEC_OBJECT_ASYNC when doing relocations
If we write a relocation into the buffer, we require our own implicit
synchronisation added after the start of the execbuf, outside of the
user's control. As we may end up clflushing, or doing the patch itself
on the GPU, asynchronously we need to look at the implicit serialisation
on obj->resv and hence need to disable EXEC_OBJECT_ASYNC for this
object.

If the user does trigger a stall for relocations, we make sure the stall
is complete enough so that the batch is not submitted before we complete
those relocations.

Fixes: 77ae995789 ("drm/i915: Enable userspace to opt-out of implicit fencing")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
(cherry picked from commit 071750e550)
[danvet: Resolve conflicts, resolution reviewed by Tvrtko on irc.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-06-26 10:43:26 +02:00
..
gvt drm/i915/gvt: clean up unsubmited workloads before destroying kmem cache 2017-05-24 10:33:37 +08:00
selftests drm/i915/selftests: Silence compiler warning in igt_ctx_exec 2017-05-24 15:34:22 +03:00
Kconfig Merge tag 'topic/designware-baytrail-2017-03-02' of git://anongit.freedesktop.org/git/drm-intel into drm-intel-next-queued 2017-03-13 09:26:06 +01:00
Kconfig.debug drm/i915: Make vblank evade warnings optional 2017-05-12 14:28:02 +10:00
Makefile Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-03-08 10:54:45 +01:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915/cmdparser: Limit clflush to active cachelines 2017-03-10 13:02:34 +00:00
i915_debugfs.c drm/i915: Hold struct_mutex for per-file stats in debugfs/i915_gem_object 2017-06-26 09:53:47 +02:00
i915_drv.c drm/i915: Prevent the system suspend complete optimization 2017-06-07 16:31:13 +03:00
i915_drv.h drm/i915: Serialize GTT/Aperture accesses on BXT 2017-06-07 12:23:19 +03:00
i915_gem.c drm/i915: Remove __GFP_NORETRY from our buffer allocator 2017-06-19 11:20:03 +03:00
i915_gem.h
i915_gem_batch_pool.c drm/i915: Retire an active batch pool object rather than allocate new 2017-03-17 17:57:20 +00:00
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Wait for all fences before installing an exclusive clflush fence 2017-03-23 12:02:53 +00:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: Disable MI_SET_CONTEXT psmi w/a for bdw 2017-03-24 17:10:10 +00:00
i915_gem_context.h drm/i915: make context status notifier head be per engine 2017-03-21 16:51:47 +02:00
i915_gem_dmabuf.c dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro 2017-04-20 13:47:46 +05:30
i915_gem_evict.c drm/i915: Move retire-requests into i915_gem_wait_for_idle() 2017-03-31 12:03:46 +01:00
i915_gem_execbuffer.c drm/i915: Disable EXEC_OBJECT_ASYNC when doing relocations 2017-06-26 10:43:26 +02:00
i915_gem_fence_reg.c drm/i915: Take rpm wakelock for releasing the fence on unbind 2017-03-06 14:38:18 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Guard against i915_ggtt_disable_guc() being invoked unconditionally 2017-06-07 16:31:27 +03:00
i915_gem_gtt.h drm/i915: Avoid using word legacy with ppgtt 2017-03-03 16:46:23 +02:00
i915_gem_internal.c
i915_gem_object.h drm/i915: Use pagecache write to prepopulate shmemfs from pwrite-ioctl 2017-03-09 10:46:07 +02:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_request.c drm/i915: Differentiate between sw write location into ring and last hw read 2017-06-19 10:52:34 +03:00
i915_gem_request.h Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-05-10 10:30:46 -07:00
i915_gem_shrinker.c drm/i915: Do not sync RCU during shrinking 2017-05-18 14:15:20 +03:00
i915_gem_stolen.c
i915_gem_tiling.c drm/i915: Fix logical inversion for gen4 quirking 2017-06-07 16:31:34 +03:00
i915_gem_timeline.c
i915_gem_timeline.h
i915_gem_userptr.c drm/i915/userptr: Reinvent GGTT self-faulting protection 2017-03-16 10:21:25 +00:00
i915_gpu_error.c drm/i915: Split breadcrumbs spinlock into two 2017-03-03 20:19:13 +00:00
i915_guc_reg.h
i915_guc_submission.c drm/i915: Differentiate between sw write location into ring and last hw read 2017-06-19 10:52:34 +03:00
i915_ioc32.c
i915_irq.c drm/i915: Stop pretending to mask/unmask LPE audio interrupts 2017-05-26 11:51:18 +03:00
i915_memcpy.c
i915_mm.c
i915_oa_hsw.c
i915_oa_hsw.h
i915_params.c drm/i915/uc: Add params for specifying firmware 2017-03-15 14:26:30 +02:00
i915_params.h drm/i915/uc: Add params for specifying firmware 2017-03-15 14:26:30 +02:00
i915_pci.c drm/i915: Restore has_fbc=1 for ILK-M 2017-06-07 16:31:47 +03:00
i915_perf.c drm/i915/perf: remove user triggerable warn 2017-03-29 13:52:25 +03:00
i915_pvinfo.h drm/i915: Fix GVT-g PVINFO version compatibility check 2017-06-13 11:19:22 +03:00
i915_reg.h drm/i915: Fix new -Wint-in-bool-context gcc compiler warning 2017-05-18 15:42:28 +03:00
i915_selftest.h
i915_suspend.c
i915_sw_fence.c
i915_sw_fence.h
i915_sysfs.c drm/i915: Return residency as microseconds 2017-03-16 12:28:28 +02:00
i915_trace.h drm/i915: Avoid use-after-free of ctx in request tracepoints 2017-03-17 07:59:48 +00:00
i915_trace_points.c
i915_utils.h drm/i915: Move WARN_ON/MISSING_CASE macros to i915_utils.h 2017-03-29 11:10:28 +01:00
i915_vgpu.c drm/i915: Fix GVT-g PVINFO version compatibility check 2017-06-13 11:19:22 +03:00
i915_vgpu.h
i915_vma.c drm/i915: Retire the VMA's fence tracker before unbinding 2017-06-26 09:53:39 +02:00
i915_vma.h
intel_acpi.c
intel_atomic.c drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not needed 2017-03-03 16:50:10 +02:00
intel_atomic_plane.c drm/i915: Add plane update/disable tracepoints 2017-03-03 16:50:10 +02:00
intel_audio.c Merge tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-03-08 12:41:47 +10:00
intel_bios.c drm/i915/vbt: split out defaults that are set when there is no VBT 2017-03-14 10:49:13 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Apply a cond_resched() to the saturated signaler 2017-04-26 16:27:58 +03:00
intel_cdclk.c drm/i915: Fix rawclk readout for g4x 2017-05-15 14:44:17 +03:00
intel_color.c drm/i915/glk: Improve rounding caused by pre-CSC gamma tables 2017-03-14 16:07:00 +02:00
intel_crt.c drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. 2017-04-06 21:29:23 +02:00
intel_csr.c drm/i915: update the firmware download URL 2017-03-28 11:17:37 +03:00
intel_ddi.c drm/i915: make a few DDI functions static 2017-03-31 11:32:41 -03:00
intel_device_info.c drm/i915/glk: Enable pooled EUs for Geminilake 2017-03-17 17:05:36 +02:00
intel_display.c drm/i915: Plumb the correct acquire ctx into intel_crtc_disable_noatomic() 2017-06-19 11:20:16 +03:00
intel_dp.c drm/i915: Detect USB-C specific dongles before reducing M and N 2017-05-29 13:43:47 +03:00
intel_dp_aux_backlight.c drm/i915: Don't enable backlight at setup time. 2017-06-19 22:15:15 +03:00
intel_dp_link_training.c
intel_dp_mst.c drm/i915: Detect USB-C specific dongles before reducing M and N 2017-05-29 13:43:47 +03:00
intel_dpio_phy.c
intel_dpll_mgr.c
intel_dpll_mgr.h
intel_drv.h drm/i915: use drm DP helper to read DPCD desc 2017-05-29 13:37:46 +03:00
intel_dsi.c drm/i915/glk: Fix DSI "*ERROR* ULPS is still active" messages 2017-05-15 14:44:04 +03:00
intel_dsi.h drm/i915/dsi: arrange intel_dsi.h according to relevant files 2017-03-07 15:18:43 +02:00
intel_dsi_dcs_backlight.c
intel_dsi_pll.c
intel_dsi_vbt.c drm/i915/dsi: rename intel_dsi_panel_vbt.c to intel_dsi_vbt.c 2017-03-07 15:18:24 +02:00
intel_dvo.c
intel_engine_cs.c drm/i915: fix warning for unused variable 2017-06-08 17:09:44 +03:00
intel_fbc.c drm/i915: Fix 90/270 rotated coordinates for FBC 2017-06-07 16:32:09 +03:00
intel_fbdev.c drm/i915/fbdev: Stop repeating tile configuration on stagnation 2017-03-09 10:43:17 +02:00
intel_fifo_underrun.c drm/i915: Add FIFO underrun tracepoints 2017-03-03 16:50:11 +02:00
intel_frontbuffer.c
intel_frontbuffer.h
intel_guc_fwif.h drm/i915/guc: Split out the mmio_white_list struct 2017-03-23 14:58:50 +02:00
intel_guc_loader.c drm/i915/uc: Move intel_uc_fw_status_repr() to intel_uc.h 2017-03-31 10:39:39 +03:00
intel_guc_log.c drm/i915/guc: Break out the GuC log extras into their own "runtime" struct 2017-03-23 14:58:02 +02:00
intel_gvt.c drm/i915/gvt: Turn on KBL platform support. 2017-03-29 15:28:51 +08:00
intel_gvt.h
intel_hangcheck.c
intel_hdmi.c drm/i915: allow HDMI 2.0 clock rates 2017-03-28 10:17:49 +03:00
intel_hotplug.c drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. 2017-04-06 21:29:23 +02:00
intel_huc.c drm/i915/huc: Remove unused intel_huc_fini() 2017-03-31 10:39:39 +03:00
intel_i2c.c
intel_lpe_audio.c drm/i915: Stop pretending to mask/unmask LPE audio interrupts 2017-05-26 11:51:18 +03:00
intel_lrc.c drm/i915: Differentiate between sw write location into ring and last hw read 2017-06-19 10:52:34 +03:00
intel_lrc.h drm/i915: Move engine->submit_request selection to a vfunc 2017-03-16 17:17:12 +00:00
intel_lspcon.c drm/i915: use drm DP helper to read DPCD desc 2017-05-29 13:37:46 +03:00
intel_lvds.c
intel_mocs.c
intel_mocs.h
intel_modes.c
intel_opregion.c drm/i915/opregion: debug log about invalid ACPI OpRegion VBT 2017-03-30 09:12:36 +03:00
intel_overlay.c drm/i915: Remove superfluous i915_add_request_no_flush() helper 2017-03-17 13:03:25 +00:00
intel_panel.c
intel_pipe_crc.c drm: Remove drm_modeset_legacy_acquire_ctx and crtc->acquire_ctx 2017-04-05 09:26:45 +02:00
intel_pm.c drm/i915: Fix SKL+ watermarks for 90/270 rotation 2017-06-13 10:53:43 +03:00
intel_psr.c drm/i915/psr: disable psr2 for resolution greater than 32X20 2017-06-07 16:31:06 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Differentiate between sw write location into ring and last hw read 2017-06-19 10:52:34 +03:00
intel_ringbuffer.h drm/i915: Differentiate between sw write location into ring and last hw read 2017-06-19 10:52:34 +03:00
intel_runtime_pm.c drm/i915: WARN if the core runtime PM get helpers fail 2017-03-28 16:02:10 +03:00
intel_sdvo.c
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Workaround VLV/CHV DSI scanline counter hardware fail 2017-06-07 16:31:39 +03:00
intel_tv.c drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. 2017-04-06 21:29:23 +02:00
intel_uc.c drm/i915/uc: Move fw path check to fetch_uc_fw() 2017-03-31 10:39:40 +03:00
intel_uc.h drm/i915/guc: Remove stale comment for q_fail 2017-06-07 16:30:38 +03:00
intel_uncore.c drm/i915: All fw_domains share the same set/clear/reset values 2017-03-23 10:22:04 +00:00
intel_vbt_defs.h