patches 1-6 are various fixes and cleanups in our existing wait_request handling code. The purpose here is to consolidate as much code as possible into core waiting functions, and to prepare those core functions for atomic access. patches 7-8 are the patches we actually care about - timeout parameters within the core functions patch 9 is the ioctl interface to wait on a given buffer for some amount of time patch 10 is just something which annoys me The libdrm and i-g-t patches I am testing with are here: http://cgit.freedesktop.org/~bwidawsk/drm/commit/?h=wait_render&id=719212fbdbcf478ebf2931040c6b415d2765383e http://cgit.freedesktop.org/~bwidawsk/intel-gpu-tools/commit/?h=wait_render&id=31dcb8379d3b263a91a85db911559317321c6b7c 100ms seems to be sufficient to complete the test on my SNB. Note to anyone who dare review this: I cannot explain why, but my i-g-t test when set with a value to actually complete (100ms), always returns a multiple of a 1000000 nanoseconds. This probably means a bug lurks somewhere, but I haven't been able to find it. It is likely something very stupid. Also, I cannot figure out a good i-g-t test to upstream since the amount of time to timeout can vary quite a bit. However the test above is good for basic functionality. Ben Widawsky (10): drm/i915: remove do_retire from i915_wait_request drm/i915: move vbetool invoked ier stuff drm/i915: kill waiting_seqno drm/i915: drop polled waits from i915_wait_request drm/i915: extract __wait_seqno from i915_wait_request drm/i915: use __wait_seqno for ring throttle drm/i915: timeout parameter for seqno wait drm/i915: real wait seqno with timeout drm/i915: wait render timeout ioctl drm/i915: s/i915_wait_reqest/i915_wait_seqno/g drivers/gpu/drm/i915/i915_debugfs.c | 3 +- drivers/gpu/drm/i915/i915_dma.c | 3 +- drivers/gpu/drm/i915/i915_drv.h | 10 +- drivers/gpu/drm/i915/i915_gem.c | 207 ++++++++++++++++++---------- drivers/gpu/drm/i915/i915_gem_evict.c | 14 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 15 +- drivers/gpu/drm/i915/intel_overlay.c | 6 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 4 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 1 - include/drm/i915_drm.h | 9 ++ 12 files changed, 184 insertions(+), 92 deletions(-) -- 1.7.10