linux/drivers/gpu/drm/i915
Chris Wilson 25ff1195f8 drm/i915: Workaround incoherence between fences and LLC across multiple CPUs
In order to fully serialize access to the fenced region and the update
to the fence register we need to take extreme measures on SNB+, and
manually flush writes to memory prior to writing the fence register in
conjunction with the memory barriers placed around the register write.

Fixes i-g-t/gem_fence_thrash

v2: Bring a bigger gun
v3: Switch the bigger gun for heavier bullets (Arjan van de Ven)
v4: Remove changes for working generations.
v5: Reduce to a per-cpu wbinvd() call prior to updating the fences.
v6: Rewrite comments to ellide forgotten history.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62191
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jon Bloomfield <jon.bloomfield@intel.com>
Tested-by: Jon Bloomfield <jon.bloomfield@intel.com> (v2)
Cc: stable@vger.kernel.org
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-04-18 09:43:10 +02:00
..
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c Linux 3.9-rc5 2013-04-03 11:28:48 +02:00
i915_dma.c drm/i915: Support PCH no display 2013-04-06 19:33:29 +02:00
i915_drv.c drm/i915: Add a pipeless ivybridge configuration 2013-04-08 20:53:06 +02:00
i915_drv.h drm/i915: PCH_NOP 2013-04-06 19:33:33 +02:00
i915_gem_context.c drm/i915: convert to idr_alloc() 2013-02-27 19:10:16 -08:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c lib/scatterlist: sg_page_iter: support sg lists w/o backing pages 2013-03-27 17:13:44 +01:00
i915_gem_evict.c drm/i915: Create a gtt structure 2013-01-17 22:33:56 +01:00
i915_gem_execbuffer.c Linux 3.9-rc5 2013-04-03 11:28:48 +02:00
i915_gem_gtt.c lib/scatterlist: sg_page_iter: support sg lists w/o backing pages 2013-03-27 17:13:44 +01:00
i915_gem_stolen.c Revert "drm/i915: set dummy page for stolen objects" 2013-03-27 17:13:44 +01:00
i915_gem_tiling.c lib/scatterlist: sg_page_iter: support sg lists w/o backing pages 2013-03-27 17:13:44 +01:00
i915_gem.c drm/i915: Workaround incoherence between fences and LLC across multiple CPUs 2013-04-18 09:43:10 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
i915_reg.h drm/i915: Don't wait for PCH on reset 2013-04-08 20:53:05 +02:00
i915_suspend.c drm/i915: don't save/restore PCH_LVDS on LPT 2013-03-17 21:53:10 +01:00
i915_sysfs.c drm/i915: add \n to the end of sysfs attributes 2013-02-20 01:33:44 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_ums.c drm/i915: move DP save/restore into i915_ums.c 2013-01-31 11:50:04 +01:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
intel_bios.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_crt.c drm/i915: add pipe_config->has_pch_encoder 2013-03-28 00:50:07 +01:00
intel_ddi.c drm/i915: fix DDI get_hw_state return value 2013-04-02 20:25:39 +02:00
intel_display.c drm/i915: tune down Y tiling scanout warning 2013-04-18 09:43:09 +02:00
intel_dp.c drm/i915: revert eDP bpp clamping code changes 2013-04-05 20:51:43 +02:00
intel_drv.h drm/i915: create pipe_config->dpll for clock state 2013-04-03 11:37:23 +02:00
intel_dvo.c drm/i915: rip out helper->disable noop functions 2013-02-14 00:07:54 +01:00
intel_fb.c drm/i915: Support PCH no display 2013-04-06 19:33:29 +02:00
intel_hdmi.c drm/i915: Don't use the HDMI port color range bit on Valleyview 2013-04-05 20:47:20 +02:00
intel_i2c.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
intel_lvds.c drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900 2013-04-05 20:47:19 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c 2013-02-01 11:01:50 +01:00
intel_overlay.c Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-02-08 11:08:10 +10:00
intel_panel.c Linux 3.9-rc5 2013-04-03 11:28:48 +02:00
intel_pm.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
intel_ringbuffer.c drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ 2013-02-20 00:21:47 +01:00
intel_ringbuffer.h Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-01-17 20:34:08 +10:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: Fix SDVO connector and encoder get_hw_state functions 2013-04-18 09:43:07 +02:00
intel_sprite.c drm/i915: sprite support for ValleyView v4 2013-04-02 20:28:53 +02:00
intel_tv.c drm/i915: clean up pipe bpp confusion 2013-03-28 01:09:35 +01:00
Makefile drm/i915: extract ums suspend/resume into i915_ums.c 2013-01-31 11:50:03 +01:00