• Chris Wilson's avatar
    drm/i915: Move user fault tracking to a separate list · 275f039d
    Chris Wilson authored
    We want to decouple RPM and struct_mutex, but currently RPM has to walk
    the list of bound objects and remove userspace mmapping before we
    suspend (otherwise userspace may continue to access the GTT whilst it is
    powered down). This currently requires the struct_mutex to walk the
    bound_list, but if we move that to a separate list and lock we can take
    the first step towards removing the struct_mutex.
    
    v2: Split runtime suspend unmapping vs regular unmapping, to make the
    locking (and barriers) clearer. Add the object to the userfault_list
    prior to inserting the first PTE, the race between add/revoke depends
    upon struct_mutex for regular unmappings and rpm for runtime-suspend.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> #v1
    Link: http://patchwork.freedesktop.org/patch/msgid/20161024124218.18252-1-chris@chris-wilson.co.uk
    275f039d
i915_drv.h 119 KB