[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