From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v8 20/34] i915: bail out earlier when shrinker cannot acquire mutex Date: Fri, 24 May 2013 23:57:08 +0200 Message-ID: <20130524215708.GK15743@phenom.ffwll.local> References: <1369391368-31562-1-git-send-email-glommer@openvz.org> <1369391368-31562-21-git-send-email-glommer@openvz.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mel Gorman , Dave Chinner , linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org, Johannes Weiner , Michal Hocko , Tejun Heo , Dave Chinner , Daniel Vetter , Kent Overstreet To: Glauber Costa Return-path: Content-Disposition: inline In-Reply-To: <1369391368-31562-21-git-send-email-glommer-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org> Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-fsdevel.vger.kernel.org On Fri, May 24, 2013 at 03:59:14PM +0530, Glauber Costa wrote: > The main shrinker driver will keep trying for a while to free objects if > the returned value from the shrink scan procedure is 0. That means "no > objects now", but a retry could very well succeed. > > A negative value has a different meaning. It means it is impossible to > shrink, and we would better bail out soon. We find this behavior more > appropriate for the case where the lock cannot be taken. Specially given > the hammer behavior of the i915: if another thread is already shrinking, > we are likely not to be able to shrink anything anyway when we finally > acquire the mutex. > > Signed-off-by: Glauber Costa > CC: Dave Chinner > CC: Mel Gorman > CC: Daniel Vetter > CC: Kent Overstreet Acked-by: Daniel Vetter > --- > drivers/gpu/drm/i915/i915_gem.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 6b17122..52b3ac1 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -4448,10 +4448,10 @@ i915_gem_inactive_count(struct shrinker *shrinker, struct shrink_control *sc) > > if (!mutex_trylock(&dev->struct_mutex)) { > if (!mutex_is_locked_by(&dev->struct_mutex, current)) > - return 0; > + return -1; > > if (dev_priv->mm.shrinker_no_lock_stealing) > - return 0; > + return -1; > > unlock = false; > } > -- > 1.8.1.4 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch