On Fri, Jun 03, 2016 at 05:55:43PM +0100, Chris Wilson wrote: > We don't need to incur the overhead of checking whether the object is > pinned prior to changing its madvise. If the object is pinned, the > madvise will not take effect until it is unpinned and so we cannot free > the pages being pointed at by hardware. Marking a pinned object with > allocated pages as DONTNEED will not trigger any undue warnings. The check > is therefore superfluous, and by removing it we can remove a linear walk > over all the vma the object has. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Needs lots of testing, but in principle I've become accustomed to this idea meanwhile ;-) Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index b78f9df1894c..dad00800aeef 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3600,11 +3600,6 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data, > goto unlock; > } > > - if (i915_gem_obj_is_pinned(obj)) { > - ret = -EINVAL; > - goto out; > - } > - > if (obj->pages && > obj->tiling_mode != I915_TILING_NONE && > dev_priv->quirks & QUIRK_PIN_SWIZZLED_PAGES) { > @@ -3623,7 +3618,6 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data, > > args->retained = obj->madv != __I915_MADV_PURGED; > > -out: > i915_gem_object_put(obj); > unlock: > mutex_unlock(&dev->struct_mutex); > -- > 2.8.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx