Am 12.05.2017 um 10:49 schrieb Chris Wilson:
On Fri, May 12, 2017 at 10:34:54AM +1000, Dave Airlie wrote:+static int drm_syncobj_wait_all_fences(struct drm_device *dev, + struct drm_file *file_private, + struct drm_syncobj_wait *wait, + uint32_t *handles) +{ + uint32_t i; + int ret = 0; + unsigned long timeout = nsecs_to_jiffies(wait->timeout_ns); + + for (i = 0; i < wait->count_handles; i++) { + struct dma_fence *fence; + + ret = drm_syncobj_fence_get(file_private, handles[i], + &fence); + if (ret) + return ret; + + if (!fence) + continue; + + ret = dma_fence_wait_timeout(fence, true, timeout);Doesn't handle -EINTR yet with timeout. If having a drmIoctl() that can't be tricked into turning a short waiting into an indefinite one is a goal.
Yeah, Daniel summarized that once nicely by noting that timeouts should be absolute not relative.
Christian.
-Chris
_______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
