drm/ttm, amdgpu: fix crashes due to shadow page table evictions

Submitted by Nicolai Hähnle on Dec. 15, 2016, 5:10 p.m.

Details

Reviewer None
Submitted Dec. 15, 2016, 5:10 p.m.
Last Updated Dec. 15, 2016, 5:59 p.m.
Revision 2

Cover Letter(s)

Revision 1
      Fix a bunch of related crashes in amdgpu that occur when shadow page tables
are kicked out of the GART.

One of the issues was that during command submission, we rely on a
device-global evictions counter to skip some of the work of page-table
validation. The driver was never informed of evictions from GART, so this
series adds an evict parameter to ttm_bo_driver::move_notify.

There's still the evict parameter on ttm_bo_driver::move which is used by
radeon and nouveau for the call to ttm_bo_move_accel_cleanup. The 'evict'
parameter there should probably be more accurately called 'wait', but unless
that wait can always be avoided, the evict parameter on ttm_bo_driver::move
needs to stay.

Please review!
Nicolai
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c    | 20 ++++++++++++++------
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c |  5 +++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 12 +++++++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c    |  4 ----
 drivers/gpu/drm/nouveau/nouveau_bo.c       |  3 ++-
 drivers/gpu/drm/qxl/qxl_ttm.c              |  1 +
 drivers/gpu/drm/radeon/radeon_object.c     |  1 +
 drivers/gpu/drm/radeon/radeon_object.h     |  1 +
 drivers/gpu/drm/ttm/ttm_bo.c               |  8 ++++----
 drivers/gpu/drm/virtio/virtgpu_ttm.c       |  1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c     |  1 +
 include/drm/ttm/ttm_bo_driver.h            | 10 ++++++++--
 12 files changed, 49 insertions(+), 18 deletions(-)
    

Revisions