• Thomas Hellström's avatar
    drm/i915: Update error capture code to avoid using the current vma state · ff20afc4
    Thomas Hellström authored
    With asynchronous migrations, the vma state may be several migrations
    ahead of the state that matches the request we're capturing.
    Address that by introducing an i915_vma_snapshot structure that
    can be used to snapshot relevant state at request submission.
    In order to make sure we access the correct memory, the snapshots take
    references on relevant sg-tables and memory regions.
    
    Also move the capture list allocation out of the fence signaling
    critical path and use the CONFIG_DRM_I915_CAPTURE_ERROR define to
    avoid compiling in members and functions used for error capture
    when they're not used.
    
    Finally, Introduce lockdep annotation.
    
    v4:
    - Break out the capture allocation mode change to a separate patch.
    v5:
    - Fix compilation error in the !CONFIG_DRM_I915_CAPTURE_ERROR case
      (kernel test robot)
    v6:
    - Use #if IS_ENABLED() instead of #ifdef to match driver style.
    - Move yet another change of allocation mode to the separate patch.
    - Commit message rework due to patch reordering.
    v7:
    - Adjust for removal of region refcounting.
    Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: default avatarRamalingam C <ramalingam.c@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211129202245.472043-1-thomas.hellstrom@linux.intel.com
    ff20afc4
i915_gem_execbuffer.c 89.3 KB