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 <glommer@xxxxxxxxxx> > CC: Dave Chinner <dchinner@xxxxxxxxxx> > CC: Mel Gorman <mgorman@xxxxxxx> > CC: Daniel Vetter <daniel.vetter@xxxxxxxx> > CC: Kent Overstreet <koverstreet@xxxxxxxxxx> Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>