All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher@gmail.com>
To: Kenneth Feng <kenneth.feng@amd.com>
Cc: amd-gfx@lists.freedesktop.org, Owen.Zhang2@amd.com,
	Maad.Aldabagh@amd.com,  Qing.Ma@amd.com
Subject: Re: [PATCH 2/2] drm/amd/amdgpu: use the default reset for ras recovery
Date: Mon, 6 May 2024 15:30:11 -0400	[thread overview]
Message-ID: <CADnq5_Opq_TpZ-zszFipB6qdkwm3B7uTiAM2PuaP8qym9xyR9w@mail.gmail.com> (raw)
In-Reply-To: <20240429073132.12611-2-kenneth.feng@amd.com>

On Mon, Apr 29, 2024 at 4:07 AM Kenneth Feng <kenneth.feng@amd.com> wrote:
>
> use the default reset for ras recovery
>
> Signed-off-by: Kenneth Feng <kenneth.feng@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> index a037e8fba29f..f92b2c4f0d5c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> @@ -2437,6 +2437,7 @@ static void amdgpu_ras_do_recovery(struct work_struct *work)
>         struct amdgpu_device *adev = ras->adev;
>         struct list_head device_list, *device_list_handle =  NULL;
>         struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev);
> +       int save_reset_method = amdgpu_reset_method;
>
>         if (hive) {
>                 atomic_set(&hive->ras_recovery, 1);
> @@ -2501,7 +2502,13 @@ static void amdgpu_ras_do_recovery(struct work_struct *work)
>                         }
>                 }
>
> +               if (amdgpu_gpu_recovery == 2)
> +                       amdgpu_reset_method = -1;
> +
>                 amdgpu_device_gpu_recover(ras->adev, NULL, &reset_context);
> +
> +               if (amdgpu_gpu_recovery == 2)
> +                       amdgpu_reset_method = save_reset_method;

This is racy.  amdgpu_gpu_recovery is a global variable and will be
referenced by all of the AMD GPUs in the system that are using amdgpu.
To handle this properly, we should store the selected reset method in
the adev structure and set that based on the module parameter at
driver bind time.  Then at runtime if we need to change the reset
method, we can change the device specific one in adev.  Maybe it would
be better to have two variable in adev.  E.g., default_reset_method
and override_reset_method.  In cases where have to use the default
method, we can use that.  In other cases, we can use the override
method.

Alex


>         }
>         atomic_set(&ras->in_recovery, 0);
>         if (hive) {
> --
> 2.34.1
>

  parent reply	other threads:[~2024-05-06 19:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-29  7:31 [PATCH 1/2] drm/amd/amdgpu: customized the reset to skip soft recovery Kenneth Feng
2024-04-29  7:31 ` [PATCH 2/2] drm/amd/amdgpu: use the default reset for ras recovery Kenneth Feng
2024-04-29  8:15   ` Feng, Kenneth
2024-05-06  8:16     ` Zhang, GuoQing (Sam)
2024-05-06 19:30   ` Alex Deucher [this message]
2024-04-29  8:14 ` [PATCH 1/2] drm/amd/amdgpu: customized the reset to skip soft recovery Feng, Kenneth
2024-05-06  8:00   ` Zhang, GuoQing (Sam)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADnq5_Opq_TpZ-zszFipB6qdkwm3B7uTiAM2PuaP8qym9xyR9w@mail.gmail.com \
    --to=alexdeucher@gmail.com \
    --cc=Maad.Aldabagh@amd.com \
    --cc=Owen.Zhang2@amd.com \
    --cc=Qing.Ma@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=kenneth.feng@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.