linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 3236f57a01 drm/i915: Use a non-blocking wait for set-to-domain ioctl
The principal use for set-to-domain is for userspace to serialise
operations with a particular buffer, for example to maintain coherency
with a CPU map or to ratelimit its rendering by waiting on all previous
operations before continuing. As such we tend to hold the struct_mutex
for long periods during the synchronisation and so cause contention
issues with other users of the graphics device, even for independent
operations as memory management. An example is the contention between
compiz and X which causes jitter in the display and a drop in peak
throughput.

The ultimate solution would be a set of fine grained locks and lockless
operations, but an intermediate step is to first attempt the
synchronisation for set-to-domain without holding the mutex. This
introduces a number of race conditions, so we limit it use to the ioctl
periphery where we have no dependent state and can safely complete with
a locked synchronisation afterwards.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-08-24 11:12:56 +02:00
..
dvo_ch7xxx.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ch7017.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ivch.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ns2501.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_sil164.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_tfp410.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo.h drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
i915_debugfs.c drm/i915: Add ERR_INT to gen7 error state 2012-08-22 18:05:54 +02:00
i915_dma.c i915: use alloc_ordered_workqueue() instead of explicit UNBOUND w/ max_active = 1 2012-08-24 01:13:53 +02:00
i915_drv.c drm/i915: Find unclaimed MMIO writes. 2012-08-22 18:06:26 +02:00
i915_drv.h drm/i915: Extract general object init routine 2012-08-24 02:04:38 +02:00
i915_gem_context.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
i915_gem_debug.c drm/i915: stop using dev->agp->base 2012-06-12 22:18:06 +02:00
i915_gem_dmabuf.c drm/i915: Track unbound pages 2012-08-21 14:34:11 +02:00
i915_gem_evict.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
i915_gem_execbuffer.c drm/i915: Use cpu relocations if the object is in the GTT but not mappable 2012-08-24 02:29:16 +02:00
i915_gem_gtt.c drm/i915: Track unbound pages 2012-08-21 14:34:11 +02:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: Only the zap the VMA after updating the tiling parameters 2012-05-03 11:18:07 +02:00
i915_gem.c drm/i915: Use a non-blocking wait for set-to-domain ioctl 2012-08-24 11:12:56 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: Add ERR_INT to gen7 error state 2012-08-22 18:05:54 +02:00
i915_reg.h drm/i915: Find unclaimed MMIO writes. 2012-08-22 18:06:26 +02:00
i915_suspend.c Linux 3.5-rc7 2012-07-20 00:53:28 -04:00
i915_sysfs.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: Track unbound pages 2012-08-21 14:34:11 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_bios.h drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_crt.c drm/i915: Allow VGA on CRTC 2 2012-08-17 10:10:06 +02:00
intel_ddi.c drm/i915: write eld info for HDMI audio 2012-08-17 10:10:04 +02:00
intel_display.c drm/i915: Cantiga+ cannot handle a hsync front porch of 0 2012-08-22 17:39:01 +02:00
intel_dp.c drm/i915: fix reassignment of variable "intel_dp->DP" 2012-08-21 14:34:36 +02:00
intel_drv.h drm/i915: drop intel_encoder argument to load_detect_pipe functions 2012-08-17 10:10:02 +02:00
intel_dvo.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
intel_fb.c drm/i915: Zero initialize mode_cmd 2012-07-05 13:27:58 +02:00
intel_hdmi.c drm/i915: add port parameter to intel_hdmi_init 2012-07-25 18:23:47 +02:00
intel_i2c.c drm/i915: ensure i2c adapter is all set before adding it 2012-08-13 19:04:24 +02:00
intel_lvds.c drm/i915: simplify possible_clones computation 2012-07-25 18:23:46 +02:00
intel_modes.c drm/i915: kill intel_ddc_probe 2012-07-20 12:21:39 +02:00
intel_opregion.c drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
intel_panel.c drm/i915: Fix blank panel at reopening lid 2012-08-11 21:15:16 +02:00
intel_pm.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
intel_ringbuffer.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
intel_ringbuffer.h drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +02:00
intel_sdvo_regs.h drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sdvo.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
intel_sprite.c drm/i915: mask tiled bit when updating ILK sprites 2012-07-20 12:21:40 +02:00
intel_tv.c drm/i915: drop intel_encoder argument to load_detect_pipe functions 2012-08-17 10:10:02 +02:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00