[Intel-gfx] [PATCH] drm/i915: Make WAIT_IOCTL negative timeouts be indefinite again

Daniel Vetter daniel at ffwll.ch
Thu Mar 5 04:27:43 PST 2015


On Wed, Mar 04, 2015 at 06:09:26PM +0000, Chris Wilson wrote:
> This fixes a regression from
> 
> commit 5ed0bdf21a85d78e04f89f15ccf227562177cbd9
> Author: Thomas Gleixner <tglx at linutronix.de>
> Date:   Wed Jul 16 21:05:06 2014 +0000
> 
>     drm: i915: Use nsec based interfaces
> 
> that made a negative timeout return immediately rather than the
> previously defined behaviour of waiting indefinitely.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Ben Widawsky <benjamin.widawsky at intel.com>
> Cc: Kristian Høgsberg <krh at bitplanet.net>
> Cc: stable at vger.kernel.org

Do you have the igt for this too? I think an wait while the buffer should
be busy with a negative timeout is all that's needed to exercise this.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 0cb858269be9..9d0df4d85693 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2957,9 +2957,9 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>  	req = obj->last_read_req;
>  
>  	/* Do this after OLR check to make sure we make forward progress polling
> -	 * on this IOCTL with a timeout <=0 (like busy ioctl)
> +	 * on this IOCTL with a timeout == 0 (like busy ioctl)
>  	 */
> -	if (args->timeout_ns <= 0) {
> +	if (args->timeout_ns == 0) {
>  		ret = -ETIME;
>  		goto out;
>  	}
> @@ -2969,7 +2969,8 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
>  	i915_gem_request_reference(req);
>  	mutex_unlock(&dev->struct_mutex);
>  
> -	ret = __i915_wait_request(req, reset_counter, true, &args->timeout_ns,
> +	ret = __i915_wait_request(req, reset_counter, true,
> +				  args->timeout_ns>0 ? &args->timeout_ns : NULL,
>  				  file->driver_priv);
>  	mutex_lock(&dev->struct_mutex);
>  	i915_gem_request_unreference(req);
> -- 
> 2.1.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the Intel-gfx mailing list