[PATCH 00/19] shadow page table support V2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Since we cannot make sure VRAM is safe after gpu reset, page table backup
is neccessary, shadow page table is sense way to recovery page talbe when
gpu reset happens.
We need to allocate GTT bo as the shadow of VRAM bo when creating page table,
and make them same. After gpu reset, we will need to use SDMA to copy GTT bo
content to VRAM bo, then page table will be recoveried. 

V2:
Shadow bo uses a shadow entity running on normal run queue, after gpu reset,
we need to wait for all shadow jobs finished first, then recovery page table from shadow.

Chunming Zhou (19):
  drm/amdgpu: add shadow bo support
  drm/amdgpu: validate shadow as well when validating bo
  drm/amdgpu: allocate shadow for pd/pt bo
  drm/amdgpu: add shadow flag
  drm/amdgpu: sync bo and shadow
  drm/amdgpu: implement vm recovery function from shadow
  drm/amdgpu: fix vm init error path
  drm/amdgpu: add shadow_entity for shadow page table updates
  drm/amdgpu: update pd shadow bo
  drm/amdgpu: update pt shadow
  drm/amd: add last fence in sched entity
  drm/amdgpu: link all vm clients
  drm/amdgpu: add vm_list_lock
  drm/amd: add block entity function
  drm/amdgpu: add shadow fence owner
  drm/amd: block entity
  drm/amdgpu: recover page tables after gpu reset
  drm/amdgpu: add need backup function
  drm/amdgpu: add backup condition for vm

 drivers/gpu/drm/amd/amdgpu/amdgpu.h           |  25 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |  82 +++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  88 ++++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 104 +++++++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h    |   5 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c      |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        | 270 +++++++++++++++++++-------
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.c |  38 +++-
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.h |   5 +
 include/uapi/drm/amdgpu_drm.h                 |   2 +
 10 files changed, 519 insertions(+), 103 deletions(-)

-- 
1.9.1



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux