AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <christian.koenig@amd.com>
To: Alex Deucher <alexdeucher@gmail.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Mario Limonciello <superm1@kernel.org>,
	Robert Beckett <bob.beckett@collabora.com>,
	amd-gfx@lists.freedesktop.org, kernel-dev@igalia.com
Subject: Re: [PATCH v4 1/2] drm/amdgpu: Fix GFX hang on SteamDeck when amdgpu is reloaded
Date: Wed, 19 Nov 2025 15:14:05 +0100	[thread overview]
Message-ID: <0d435963-799f-46cb-805c-3dfd739bdec0@amd.com> (raw)
In-Reply-To: <CADnq5_PvUGYZiHr3572cqeQxCHTNFkDodaZDbmOg02tMV=vuPw@mail.gmail.com>



On 11/19/25 15:00, Alex Deucher wrote:
> On Wed, Nov 19, 2025 at 4:29 AM Christian König
> <christian.koenig@amd.com> wrote:
>>
>>
>>
>> On 11/19/25 01:22, Rodrigo Siqueira wrote:
>>> When trying to unload amdgpu in the SteamDeck (TTY mode), the following
>>> set of errors happens and the system gets unstable:
>>>
>>> [..]
>>>  [drm] Initialized amdgpu 3.64.0 for 0000:04:00.0 on minor 0
>>>  amdgpu 0000:04:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on gfx_0.0.0 (-110).
>>>  amdgpu 0000:04:00.0: amdgpu: ib ring test failed (-110).
>>> [..]
>>>  amdgpu 0000:04:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x0000001E SMN_C2PMSG_82:0x00000000
>>>  amdgpu 0000:04:00.0: amdgpu: Failed to disable gfxoff!
>>>  amdgpu 0000:04:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x0000001E SMN_C2PMSG_82:0x00000000
>>>  amdgpu 0000:04:00.0: amdgpu: Failed to disable gfxoff!
>>> [..]
>>>
>>> When the driver initializes the GPU, the PSP validates all the firmware
>>> loaded, and after that, it is not possible to load any other firmware
>>> unless the device is reset. What is happening in the load/unload
>>> situation is that PSP halts the GC engine because it suspects that
>>> something is amiss. To address this issue, this commit ensures that the
>>> GPU is reset (mode 2 reset) in the unload sequence.
>>
>> Mhm doing that on unload sounds like a bad idea to me.
>>
>> We should rather do that on re-load to also cover the case of aborted VMs for example.
> 
> That's what we already do for dGPUs, but for APUs, there's not really
> a good way to detect this case on startup.  On dGPUs we check to see
> if the PSP is running, on APUs the PSP is always running because it's
> shared with the whole SoC.  Always resetting on init is not desirable
> as it adds latency and causes screen flicker.

Ah! Good point, we need the reasoning that the PSP is always running on APUs as code comment here.

With that done looks fine to me as well.

Regards,
Christian.

> 
> Alex
> 
>>
>> Regards,
>> Christian.
>>
>>>
>>> Suggested-by: Alex Deucher <alexander.deucher@amd.com>
>>> Signed-off-by: Rodrigo Siqueira <siqueira@igalia.com>
>>> ---
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> index 860ac1f9e35d..80d00475bc9f 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> @@ -3680,6 +3680,15 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
>>>                               "failed to release exclusive mode on fini\n");
>>>       }
>>>
>>> +     /* Reset the device before entirely removing it to avoid load issues
>>> +      * caused by firmware validation.
>>> +      */
>>> +     if ((adev->flags & AMD_IS_APU) && !adev->gmc.is_app_apu) {
>>> +             r = amdgpu_asic_reset(adev);
>>> +             if (r)
>>> +                     dev_err(adev->dev, "asic reset on %s failed\n", __func__);
>>> +     }
>>> +
>>>       return 0;
>>>  }
>>>
>>


  reply	other threads:[~2025-11-19 14:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-19  0:22 [PATCH v4 0/2] Address amdgpu reload issues in APUs Rodrigo Siqueira
2025-11-19  0:22 ` [PATCH v4 1/2] drm/amdgpu: Fix GFX hang on SteamDeck when amdgpu is reloaded Rodrigo Siqueira
2025-11-19  9:20   ` Christian König
2025-11-19 14:00     ` Alex Deucher
2025-11-19 14:14       ` Christian König [this message]
2025-11-19  0:22 ` [PATCH v4 2/2] Revert "drm/amd: fix gfx hang on renoir in IGT reload test" Rodrigo Siqueira

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=0d435963-799f-46cb-805c-3dfd739bdec0@amd.com \
    --to=christian.koenig@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=alexdeucher@gmail.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=bob.beckett@collabora.com \
    --cc=kernel-dev@igalia.com \
    --cc=siqueira@igalia.com \
    --cc=superm1@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox