[PATCH 00/10] GART table recovery
zhoucm1
david1.zhou at amd.com
Thu Aug 4 03:35:44 UTC 2016
On 2016年08月03日 22:01, Christian König wrote:
> Well patch #10 is incorrect. The SA BO will be set to NULL by
> amdgpu_sa_bo_free(), so it can't be freed twice and so you can't
> reference the fence twice.
I see.
But amdgpu_job_free_resources still shouldn't be called twice, right?
That's an obvious duplication although it seems no effect now. Is there
any other reason?
>
> Additional to that the whole approach here of restoring the GART from
> the backup using the SDMA won't work either. For the SDMA to work you
> need the GART to access the ring buffer.
>
> So you run into a chicken and egg problem here, for the ring buffer to
> work you need the GART and for the GART backup to work you need the
> ring buffer.
Good catch, ring buffer is a GTT buffer as well.
Then Can we use memcpy to copy GTT to VRAM? Fortunately, the GART bo is
only one bo.
Regards,
David Zhou
>
> We should just restore the GART content from the housekeeping
> structure instead. Going to evaluate if and how that might be possible.
>
> Regards,
> Christian.
>
> Am 02.08.2016 um 10:00 schrieb Chunming Zhou:
>> gart table is stored in one bo which must be ready before gart init,
>> but the shadow bo must be created after gart is ready, so they cannot
>> be created at a same time. shado bo itself aslo is included in gart
>> table, So shadow bo needs a synchronization after device init. After
>> sync, the contents of bo and shadwo bo will be same, and be updated
>> at a same time. Then we will be able to recover gart table from
>> shadow bo when gpu full reset.
>>
>> patch10 is a fix for memory leak.
>>
>> Chunming Zhou (10):
>> drm/amdgpu: make need_backup generic
>> drm/amdgpu: implement gart late_init/fini
>> drm/amdgpu: add gart_late_init/fini to gmc V7/8
>> drm/amdgpu: abstract amdgpu_bo_create_shadow
>> drm/amdgpu: shadow gart table support
>> drm/amdgpu: make recover_bo_from_shadow be generic
>> drm/amdgpu: implement gart recovery
>> drm/amdgpu: recover gart table first when full reset
>> drm/amdgpu: sync gart table before initialization completed
>> drm/amdgpu: fix memory leak of sched fence
>>
>> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 9 ++
>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 139
>> +++++++++++++++++++++++++++++
>> drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 2 +-
>> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 80 ++++++++++++++---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 9 ++
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 50 ++---------
>> drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 39 +++++++-
>> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 40 ++++++++-
>> 9 files changed, 304 insertions(+), 66 deletions(-)
>>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list