[Intel-gfx] [PATCH] intel: Fix documentation for drm_intel_gem_bo_wait()

Kristian Høgsberg krh at bitplanet.net
Sat Feb 28 09:44:15 PST 2015


The kernel doesn't actually wait indefinately when passed a negative,
timeout, it returns immediately.  Document this and suggest using INT64_MAX
for indefinite waits.

Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
---

We first check if the object is already idle and return 0 if so.  Then
we hit this condition:

        if (args->timeout_ns <= 0) {
                ret = -ETIME;
                goto out;
        }

and return -ETIME on any timeout value <= 0.  I don't know if the ioctl
worked as intended initially and then was broken when this was added, but
either way, there's no point in fixing it.  Userspace can use INT64_MAX
for indefinite timeout, which works as well and is simpler trying to
determine whether or not we have a fixed DRM_IOCTL_I915_GEM_WAIT.

 intel/intel_bufmgr_gem.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index cf85bb8..d7bfaae 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -1656,12 +1656,14 @@ drm_intel_gem_bo_wait_rendering(drm_intel_bo *bo)
  *
  * @bo: buffer object to wait for
  * @timeout_ns: amount of time to wait in nanoseconds.
- *   If value is less than 0, an infinite wait will occur.
+ *   If value is less than or equal to 0, return immediately.
  *
- * Returns 0 if the wait was successful ie. the last batch referencing the
- * object has completed within the allotted time. Otherwise some negative return
- * value describes the error. Of particular interest is -ETIME when the wait has
- * failed to yield the desired result.
+ * Returns 0 if the wait was successful ie. the last batch referencing
+ * the object has completed within the allotted time. Otherwise some
+ * negative return value describes the error. Of particular interest
+ * is -ETIME when the wait has failed to yield the desired result.
+ * Use a timeout of INT64_MAX to wait indefinitely (well, at least 292
+ * years).
  *
  * Similar to drm_intel_gem_bo_wait_rendering except a timeout parameter allows
  * the operation to give up after a certain amount of time. Another subtle
-- 
2.1.0



More information about the Intel-gfx mailing list