linux/drivers/gpu/drm/i915
Chris Wilson 30dbf0c07f drm/i915: Adjust hangcheck EIO semantics
Owain Ainsworth reported an issue between the interaction of the
hangcheck and userspace immediately (and permanently) falling back to
s/w rasterisation. In order to break the mutex and begin resetting the
GPU, we must abort the current operation (usually within the wait) and
climb sufficiently far back up the call chain to drop the mutex. In his
implementation, Owain has a loop within the ioctl handler to detect the
hang and then sleep until the error handler has run. I've chosen to
return to userspace and report an EAGAIN which should trigger the
userspace ioctl handler to repeat the call (simply because it felt less
invasive...). Before hitting a wedged GPU, we then wait upon completion
of the error handler.

Reported-by: Owain G. Ainsworth <zerooa@googlemail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-09-25 12:23:12 +01:00
..
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
i915_debugfs.c drm/i915: Only hold a process-local lock whilst throttling. 2010-09-24 21:03:00 +01:00
i915_dma.c drm/i915: Only hold a process-local lock whilst throttling. 2010-09-24 21:03:00 +01:00
i915_drv.c drm/i915: Clear the gpu_write_list on resetting write_domain upon hang 2010-09-22 10:31:52 +01:00
i915_drv.h drm/i915: Adjust hangcheck EIO semantics 2010-09-25 12:23:12 +01:00
i915_gem_debug.c drm/i915: drop pointer to drm_gem_object 2010-04-20 13:23:14 +10:00
i915_gem_evict.c Merge branch 'drm-intel-fixes' into HEAD 2010-09-21 11:19:32 +01:00
i915_gem_tiling.c drm/i915: Adjust hangcheck EIO semantics 2010-09-25 12:23:12 +01:00
i915_gem.c drm/i915: Adjust hangcheck EIO semantics 2010-09-25 12:23:12 +01:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: Adjust hangcheck EIO semantics 2010-09-25 12:23:12 +01:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h drm/i915: add relative ring register macros 2010-09-21 11:20:01 +01:00
i915_suspend.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h drm/i915: add tracepoints for flip requests & completions 2010-07-02 14:04:14 +10:00
intel_bios.c drm/i915: Parse the eDP link configuration from the vBIOS 2010-09-24 14:22:11 +01:00
intel_bios.h drm/i915: parse eDP panel color depth from VBT block 2010-01-15 14:12:47 -08:00
intel_crt.c drm/i915/crt: Use a DDC probe on 0xA0 before load-detect 2010-09-22 18:32:55 +01:00
intel_display.c drm/i915: Only hold a process-local lock whilst throttling. 2010-09-24 21:03:00 +01:00
intel_dp.c drm/i915/dp: Wait for PP_CONTROL to take effect. 2010-09-24 14:22:13 +01:00
intel_drv.h drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_dvo.c drm/i915: Use the correct DPB GMBUS port for GPIOE 2010-09-21 12:50:13 +01:00
intel_fb.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
intel_hdmi.c Merge branch 'drm-intel-fixes' into HEAD 2010-09-21 11:19:32 +01:00
intel_i2c.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_lvds.c drm/i915: Parse the eDP link configuration from the vBIOS 2010-09-24 14:22:11 +01:00
intel_modes.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_opregion.c drm/i915: Refactor panel backlight controls 2010-09-08 10:23:58 +01:00
intel_overlay.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
intel_panel.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
intel_ringbuffer.c drm/i915: Only hold a process-local lock whilst throttling. 2010-09-24 21:03:00 +01:00
intel_ringbuffer.h drm/i915: Only hold a process-local lock whilst throttling. 2010-09-24 21:03:00 +01:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_sdvo.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
intel_tv.c drm/i915/tv: Sleep before checking for state changes. 2010-09-23 11:05:44 +01:00
Makefile drm/i915: Use the VBT from OpRegion when available (v3) 2010-09-08 10:13:32 +01:00