On Mon, Aug 20, 2012 at 10:36:09AM +0100, Chris Wilson wrote:
> On Mon, 20 Aug 2012 11:00:39 +0200, Daniel Vetter
> wrote:
> > int
> > -i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj,
> > - gfp_t gfpmask)
> > +i915_gem_object_get_pages_gtt(struct drm_i915_g
On Mon, 20 Aug 2012 11:00:39 +0200, Daniel Vetter
wrote:
> int
> -i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj,
> - gfp_t gfpmask)
> +i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
> {
> + struct drm_i915_private *dev_priv = obj->ba
When dealing with a working set larger than the GATT, or even the
mappable aperture when touching through the GTT, we end up with evicting
objects only to rebind them at a new offset again later. Moving an
object into and out of the GTT requires clflushing the pages, thus
causing a double-clflush p