• Michel Thierry's avatar
    drm/i915: vma/ppgtt lifetime rules · b9d06dd9
    Michel Thierry authored
    VMAs should take a reference of the address space they use.
    
    Now, when the fd is closed, it will release the ref that the context was
    holding, but it will still be referenced by any vmas that are still
    active.
    
    ppgtt_release() should then only be called when the last thing referencing
    it releases the ref, and it can just call the base cleanup and free the
    ppgtt.
    
    Note that with this we will extend the lifetime of ppgtts which
    contain shared objects. But all the non-shared objects will get
    removed as soon as they drop of the active list and for the shared
    ones the shrinker can eventually reap them. Since we currently can't
    evict ppgtt pagetables either I don't think that temporary leak is
    important.
    Signed-off-by: default avatarMichel Thierry <michel.thierry@intel.com>
    [danvet: Add note about potential ppgtt leak with this approach.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b9d06dd9
i915_gem_gtt.c 56.9 KB