[PATCH 00/10] wait for BO with timeout

Ben Widawsky
2012-04-21T01:25:02Z

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