[Intel-gfx] [PATCH 1/5] drm/i915: Allow i915 to manage the vma offset nodes instead of drm core
Chris Wilson
chris at chris-wilson.co.uk
Mon Aug 26 12:53:07 UTC 2019
Quoting Abdiel Janulgue (2019-08-26 13:20:58)
> @@ -641,10 +642,18 @@ static void revoke_mmaps(struct intel_gt *gt)
> GEM_BUG_ON(vma->fence != >->ggtt->fence_regs[i]);
> node = &vma->obj->base.vma_node;
> vma_offset = vma->ggtt_view.partial.offset << PAGE_SHIFT;
> - unmap_mapping_range(gt->i915->drm.anon_inode->i_mapping,
> +
> + list_for_each_entry(mmo, &vma->obj->mmap_offsets, offset) {
> + node = &mmo->vma_node;
> + if (!drm_mm_node_allocated(&node->vm_node) ||
> + mmo->mmap_type != I915_MMAP_TYPE_GTT)
> + continue;
That list needs locking as is not protected by the reset srcu (and you
are not allowed your own locking in here, unless you have a jolly good
reason and can prove it will never block a reset).
One thing to observe is is that you only ever need the mmo associated
with a fence for revocation upon reset, and you could use a local list
for tracking the active mmo.
-Chris
More information about the Intel-gfx
mailing list