[Intel-gfx] [PATCH 5/8] drm/i915/gem/ttm: Only call __i915_gem_object_set_pages if needed
Matthew Auld
matthew.william.auld at gmail.com
Mon Jul 26 08:08:34 UTC 2021
On Fri, 23 Jul 2021 at 18:22, Jason Ekstrand <jason at jlekstrand.net> wrote:
>
> __i915_ttm_get_pages does two things. First, it calls ttm_bo_validate()
> to check the given placement and migrate the BO if needed. Then, it
> updates the GEM object to match, in case the object was migrated. If
> no migration occured, however, we might still have pages on the GEM
> object in which case we don't need to fetch them from TTM and call
> __i915_gem_object_set_pages. This hasn't been a problem before because
> the primary user of __i915_ttm_get_pages is __i915_gem_object_get_pages
> which only calls it if the GEM object doesn't have pages.
>
> However, i915_ttm_migrate also uses __i915_ttm_get_pages to do the
> migration so this meant it was unsafe to call on an already populated
> object. This patch checks i915_gem_object_has_pages() before trying to
> __i915_gem_object_set_pages so i915_ttm_migrate is safe to call, even on
> populated objects.
>
> Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Matthew Auld <matthew.auld at intel.com>
More information about the Intel-gfx
mailing list