[Intel-gfx] [PATCH v2 1/2] drm/i915: Add i915_gem_object_vmap to map GEM object to virtual space

Chris Wilson chris at chris-wilson.co.uk
Thu Feb 18 21:05:14 UTC 2016

On Thu, Feb 18, 2016 at 10:31:37AM -0800, yu.dai at intel.com wrote:
> From: Alex Dai <yu.dai at intel.com>
> There are several places inside driver where a GEM object is mapped to
> kernel virtual space. The mapping is either done for the whole object
> or certain page range of it.
> This patch introduces a function i915_gem_object_vmap to do such job.
> v2: Use obj->pages->nents for iteration within i915_gem_object_vmap;
>     break when it finishes all desired pages. The caller need to pass
>     in actual page number. (Tvrtko Ursulin)

Who owns the pages? vmap doesn't increase the page refcount nor
mapcount, so it is the callers responsibility to keep the pages alive
for the duration of the vmapping.

I suggested i915_gem_object_pin_vmap/unpin_vmap for that reason and that
also provides the foundation for undoing one of the more substantial
performance regressions from vmap_batch().

Chris Wilson, Intel Open Source Technology Centre

More information about the Intel-gfx mailing list