[PATCH v5 5/6] drm/amdgpu: dump ip state before reset for each ip
Alex Deucher
alexdeucher at gmail.com
Wed Apr 17 15:52:25 UTC 2024
On Wed, Apr 17, 2024 at 5:38 AM Sunil Khatri <sunil.khatri at amd.com> wrote:
>
> Invoke the dump_ip_state function for each ip before
> the asic resets and save the register values for
> debugging via devcoredump.
>
> Signed-off-by: Sunil Khatri <sunil.khatri at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index f3b7cb18fd46..f8a34db5d9e3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -5353,6 +5353,7 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
> struct amdgpu_device *tmp_adev = NULL;
> bool need_full_reset, skip_hw_reset, vram_lost = false;
> int r = 0;
> + uint32_t i;
>
> /* Try reset handler method first */
> tmp_adev = list_first_entry(device_list_handle, struct amdgpu_device,
> @@ -5361,6 +5362,12 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
> if (!test_bit(AMDGPU_SKIP_COREDUMP, &reset_context->flags))
> amdgpu_reset_reg_dumps(tmp_adev);
>
> + /* Trigger ip dump before we reset the asic */
> + for (i = 0; i < tmp_adev->num_ip_blocks; i++)
> + if (tmp_adev->ip_blocks[i].version->funcs->dump_ip_state)
> + tmp_adev->ip_blocks[i].version->funcs->dump_ip_state(
> + (void *)tmp_adev);
> +
> reset_context->reset_device_list = device_list_handle;
> r = amdgpu_reset_perform_reset(tmp_adev, reset_context);
> /* If reset handler not implemented, continue; otherwise return */
> --
> 2.34.1
>
More information about the amd-gfx
mailing list