On Wed, Sep 11, 2013 at 02:57:52PM -0700, Ben Widawsky wrote: > if (from != NULL) { > - struct drm_i915_private *dev_priv = from->obj->base.dev->dev_private; > - struct i915_address_space *ggtt = &dev_priv->gtt.base; > + struct drm_i915_private *dev_priv = ring->dev->dev_private; > + struct i915_vma *vma = > + i915_gem_obj_to_vma(from->obj, &dev_priv->gtt.base); > from->obj->base.read_domains = I915_GEM_DOMAIN_INSTRUCTION; > - list_move_tail(&i915_gem_obj_to_vma(from->obj, ggtt)->mm_list, &ggtt->active_list); > - i915_gem_object_move_to_active(from->obj, ring); > + i915_vma_move_to_active(vma, ring); We do fairly often lookup the ggtt vma for an obj. Is this worth a speciallised function call? i915_vma_move_to_active(i915_gem_obj_to_ggtt(from->obj), ring); struct i915_vma *i915_gem_obj_to_ggtt(struct drm_i915_gem_object *obj) { struct i915_vma *vma; if (WARN_ON(list_empty(&obj->vma_list)) return NULL; vma = list_first_entry(&obj->vma_list, typeof(*vma), vma_link); if (WARN_ON(vma != &to_i915(obj->base.dev)->gtt.base)) return NULL; return vma; } -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx