On 08/05/2016 07:38 PM, Chunming Zhou wrote: > 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. Hmm, bit of a nitpick but the following is perhaps a little better wording: s/Since we cannot ensure VRAM is consistent after a GPU reset, page table shadowing is necessary. Shadowed page tables are, in a sense, a method to recover the consistent state of the page tables before the reset occurred. > 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 s/make them same/make them the same/ Hope this is helpful, Kind Regards, Edward. > 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(-) > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20160805/5b5ace39/attachment.sig>