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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx