• Chris Wilson's avatar
    drm/i915: Rely on spinlock protection for GPU error capture · 3bdd4f84
    Chris Wilson authored
    Trust that we now have adequate protection over the low level structures
    via the engine->active.lock to allow ourselves to capture the GPU error
    state without the heavy hammer of stop_machine(). Sadly this does mean
    that we have to forgo some of the lesser used information (not derived
    from the active state) that is not controlled by the active locks. This
    includes the list of buffers in the ppGTT and pinned globally in the
    GGTT. Originally this was used to manually verify relocations, but
    hasn't been required for sometime and modern mesa now has the habit of
    ensuring that all interesting buffers within a batch are captured in their
    entirety (that are the auxiliary state buffers, but not the textures).
    
    A useful side-effect is that this allows us to restore error capturing
    for Braswell and Broxton.
    
    v2: Use pagevec for a typical arbitrary number of preallocated pages
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190722222847.24178-1-chris@chris-wilson.co.uk
    3bdd4f84
i915_gpu_error.c 44.8 KB