[Intel-gfx] [PATCH] drm/i915: Drop flushing of the object free list/worker from i915_gem_suspend

David Weinehall david.weinehall at linux.intel.com
Tue Jun 27 17:57:34 UTC 2017


On Tue, Jun 27, 2017 at 06:37:31PM +0100, Chris Wilson wrote:
> i915_gem_suspend() is called from all of our finalization paths
> (suspend, hibernate, unload). i915_gem_drain_freed_objects() adds an
> arbitrary delay as it uses an rcu_barrier() to ensure that there are no
> more freed objects in flight, and this delay causes a large amount of
> variability in suspend timings. For S3 suspend, we do not need to free
> pages as doing so does not impact at all upon the system in its
> suspended state, unlike S4 hibernation where we do want the hibernation
> image to be as small as possible. Therefore we can forgo waiting inside
> i915_gem_suspend(), so long as we ensure that we do cleanup before
> unload (see i915_gem_load_cleanup()) and prefer to reap our objects
> prior to hibernation (see i915_gem_freeze()).
> 
> Removing the rcu_barrier() from i915_gem_suspend() improves S3 latency
> by about 30ms on Skylake (ymmv).
> 
> Reported-by: David Weinehall <david.weinehall at linux.intel.com>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: David Weinehall <david.weinehall at linux.intel.com>

Tested-by: David Weinehall <david.weinehall at linux.intel.com>
Reviewed-by: David Weinehall <david.weinehall at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_gem.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 36d838677982..f38c84e485ab 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4597,8 +4597,6 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
>  	while (flush_delayed_work(&dev_priv->gt.idle_work))
>  		;
>  
> -	i915_gem_drain_freed_objects(dev_priv);
> -
>  	/* Assert that we sucessfully flushed all the work and
>  	 * reset the GPU back to its idle, low power state.
>  	 */
> -- 
> 2.13.1
> 


More information about the Intel-gfx mailing list