[Intel-gfx] [PATCH v2 3/4] drm/i915: Lazily migrate the objects after hibernation
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Fri May 13 07:46:12 UTC 2016
On to, 2016-05-12 at 15:28 +0100, Chris Wilson wrote:
> Now that we mark the object domains for having been restored from the
> hibernation image, we not need to flush everything during resume and
> can instead rely on the normal domain tracking to flush only when
> required. The only caveat here are objects that are pinned for use by
> the hardware, whose contents must be coherent for when the device
> resumes reading from then (shortly afterwards with the driver assuming
> the objects are in the correct domain).
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Imre Deak <imre.deak at intel.com>
> Cc: David Weinehall <david.weinehall at intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_gtt.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 5fb14c835543..319f3b459b3e 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3245,7 +3245,6 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev)
> struct i915_ggtt *ggtt = &dev_priv->ggtt;
> struct drm_i915_gem_object *obj;
> struct i915_vma *vma;
> - bool flush;
>
> i915_check_and_clear_faults(dev_priv);
>
> @@ -3255,19 +3254,16 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev)
>
> /* Cache flush objects bound into GGTT and rebind them. */
> list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
> - flush = false;
> list_for_each_entry(vma, &obj->vma_list, obj_link) {
> if (vma->vm != &ggtt->base)
> continue;
>
> WARN_ON(i915_vma_bind(vma, obj->cache_level,
> PIN_UPDATE));
> -
> - flush = true;
> }
>
> - if (flush)
> - i915_gem_clflush_object(obj, obj->pin_display);
> + if (obj->pin_display)
> + WARN_ON(i915_gem_object_set_to_gtt_domain(obj, false));
> }
>
> if (INTEL_INFO(dev)->gen >= 8) {
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the Intel-gfx
mailing list