• Daniel Vetter's avatar
    drm: Don't complain too much about struct_mutex. · 3379c04c
    Daniel Vetter authored
    For modern drivers the DRM core doesn't use struct_mutex at all, which
    means it's defacto a driver-private lock. But since we still need it
    for legacy drivers we can't initialize it in drivers, which means all
    the different instances share one lockdep key. Despite that they might
    be placed in totally different places in the locking hierarchy.
    
    This results in a lot of bogus lockdep splats when running stuff on
    systems with multiple gpus. Partially remedy the situation by only
    doing might_lock checks on drivers that do use struct_mutex still for
    gem locking.
    
    A more complete solution would be to do the mutex_init in the drm core
    only for legacy drivers, plus add it to each modern driver that still
    needs it, which would also give each its own lockdep key. Trying to do
    that dynamically doesn't work, because lockdep requires it's keys to
    be statically allocated.
    
    v2: {} everywhere (Chris)
    
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Jiri Slaby <jirislaby@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170715095328.25671-1-daniel.vetter@ffwll.ch
    3379c04c
drm_gem.c 28.8 KB