On Mon, 2017-10-09 at 09:43 +0100, Chris Wilson wrote: > We don't wish to refault the entire object (other vma) when unbinding > one partial vma. To do this track which vma have been faulted into the > user's address space. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> <SNIP> > @@ -683,6 +683,29 @@ static void __i915_vma_iounmap(struct i915_vma *vma) > vma->iomap = NULL; > } > > +void i915_vma_revoke_mmap(struct i915_vma *vma) > +{ > + struct drm_vma_offset_node *node = &vma->obj->base.vma_node; > + > + lockdep_assert_held(&vma->vm->i915->drm.struct_mutex); > + > + if (!i915_vma_has_userfault(vma)) > + return; > + > + GEM_BUG_ON(!i915_vma_is_map_and_fenceable(vma)); > + GEM_BUG_ON(!vma->obj->userfault_count); > + > + unmap_mapping_range(vma->vm->i915->drm.anon_inode->i_mapping, > + drm_vma_node_offset_addr(node) + > + (vma->ggtt_view.partial.offset << PAGE_SHIFT), Maybe compute this on a separate variable to not to confuse reader with strange indent. "drm_vma_node_offset_addr(node) + vma_offset" would read nicely. Every other patch I read that touches the ggtt_views could use the variables to be in page counts and others in byte counts... Anyway, Reviewed-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Regards, Joonas -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx