[Intel-gfx] [PATCH] drm/i915: Restore all GGTT VMAs on resume

Chris Wilson chris at chris-wilson.co.uk
Mon Jul 6 08:39:53 PDT 2015


On Mon, Jul 06, 2015 at 04:29:12PM +0100, Tvrtko Ursulin wrote:
> 
> On 07/06/2015 04:19 PM, Chris Wilson wrote:
> >On Mon, Jul 06, 2015 at 03:15:01PM +0100, Tvrtko Ursulin wrote:
> >>From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >>
> >>When rotated and partial views were added no one spotted the resume
> >>path which assumes only one GGTT VMA per object and hence is now
> >>skipping rebind of alternative views.
> >>
> >>Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >>Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> >>Cc: Chris Wilson <chris at chris-wilson.co.uk>
> >>Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> >>---
> >>Similarly to my recent debugfs patch, it would seem quicker path could
> >>be to walk GGTT active & inactive lists, but I assume we want to call
> >>i915_gem_clflush_object only once per object which would make that
> >>problematic.
> >
> >It's a bit easier because there are no active entries after suspend, and
> >we may not care too much for over clflushing.
> >
> >We should actually clear the GGTT of all but pinned entries on
> >hibernate (which would save a bunch of work on early resume), and there
> >are a bunch of non-objects inside the GGTT that should be evicted/restored
> >properly. (Would have been trivial had we made them all objects in the
> >first place.)
> 
> What are these non-objects and where do I find the code with
> restores them improperly?

The PDEs are allocated directly in the GGTT and ignored completely
across hibernation. All we ideally need to do is evict them on freeze.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list