• Daniel Vetter's avatar
    drm/i915: annote drop_caches debugfs interface with lockdep · 05df49e7
    Daniel Vetter authored
    The trouble we have is that we can't really test all the shrinker
    recursion stuff exhaustively in BAT because any kind of thrashing
    stress test just takes too long.
    
    But that leaves a really big gap open, since shrinker recursions are
    one of the most annoying bugs. Now lockdep already has support for
    checking allocation deadlocks:
    
    - Direct reclaim paths are marked up with
      lockdep_set_current_reclaim_state() and
      lockdep_clear_current_reclaim_state().
    
    - Any allocation paths are marked with lockdep_trace_alloc().
    
    If we simply mark up our debugfs with the reclaim annotations, any
    code and locks taken in there will automatically complete the picture
    with any allocation paths we already have, as long as we have a simple
    testcase in BAT which throws out a few objects using this interface.
    Not stress test or thrashing needed at all.
    
    v2: Need to EXPORT_SYMBOL_GPL to make it compile as a module.
    
    v3: Fixup rebase fail (spotted by Chris).
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170312205340.16202-1-daniel.vetter@ffwll.chSigned-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    05df49e7
i915_debugfs.c 138 KB