From: "Timur Kristóf" <timur.kristof@gmail.com>
To: amd-gfx@lists.freedesktop.org, Alexander.Deucher@amd.com,
"Christian König" <christian.koenig@amd.com>,
"Natalie Vock" <natalie.vock@gmx.de>,
"Marek Olšák" <maraeo@gmail.com>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"Felix Kuehling" <Felix.Kuehling@amd.com>,
"Lijo Lazar" <lijo.lazar@amd.com>
Cc: "Timur Kristóf" <timur.kristof@gmail.com>
Subject: [PATCH 1/5] drm/amdgpu/sdma: Clear SDMA rings after reset before starting them
Date: Fri, 28 Aug 2026 14:07:25 +0200 [thread overview]
Message-ID: <20260828120729.25908-2-timur.kristof@gmail.com> (raw)
In-Reply-To: <20260828120729.25908-1-timur.kristof@gmail.com>
The ring contains commands that were emitted before the reset.
These need to be cleared to make sure the HW doesn't execute
them, because they are garbage at this point.
Note that the ring reset helpers will re-emit the commands
that are necessary after the reset.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
index fbac732f3e01..66f278f77f71 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
@@ -593,6 +593,18 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t instance_id,
goto exit;
}
+ amdgpu_ring_clear_ring(gfx_ring);
+ gfx_ring->wptr = 0;
+ atomic64_set((atomic64_t *)gfx_ring->wptr_cpu_addr, 0);
+ atomic64_set((atomic64_t *)gfx_ring->rptr_cpu_addr, 0);
+
+ if (adev->sdma.has_page_queue) {
+ amdgpu_ring_clear_ring(page_ring);
+ page_ring->wptr = 0;
+ atomic64_set((atomic64_t *)page_ring->wptr_cpu_addr, 0);
+ atomic64_set((atomic64_t *)page_ring->rptr_cpu_addr, 0);
+ }
+
if (sdma_instance->funcs->start_kernel_queue) {
sdma_instance->funcs->start_kernel_queue(gfx_ring);
if (adev->sdma.has_page_queue)
--
2.55.0
next prev parent reply other threads:[~2026-08-28 12:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 12:07 [PATCH 0/5] drm/amdgpu/sdma: Improve existing SDMA queue resets Timur Kristóf
2026-08-28 12:07 ` Timur Kristóf [this message]
2026-08-28 12:07 ` [PATCH 2/5] drm/amdgpu/sdma: Remove unimplemented soft_reset() for SDMA and SI DMA Timur Kristóf
2026-08-28 14:21 ` Lazar, Lijo
2026-08-28 12:07 ` [PATCH 3/5] drm/amdgpu/sdma: Move SDMA v5.x queue reset to common code Timur Kristóf
2026-08-28 14:20 ` Lazar, Lijo
2026-08-28 15:37 ` Timur Kristóf
2026-08-28 15:52 ` Alex Deucher
2026-08-28 21:49 ` Timur Kristóf
2026-08-28 15:53 ` Lazar, Lijo
2026-08-28 21:42 ` Timur Kristóf
2026-08-28 12:07 ` [PATCH 4/5] drm/amdgpu/sdma: Use common SDMA legacy queue reset on SDMA v4.4.2 Timur Kristóf
2026-08-28 14:16 ` Lazar, Lijo
2026-08-28 15:36 ` Timur Kristóf
2026-08-28 15:46 ` Lazar, Lijo
2026-08-28 12:07 ` [PATCH 5/5] drm/amdgpu/sdma: In legacy queue reset function, check if KFD is initialized Timur Kristóf
2026-08-28 14:11 ` Lazar, Lijo
2026-08-28 15:34 ` Timur Kristóf
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=20260828120729.25908-2-timur.kristof@gmail.com \
--to=timur.kristof@gmail.com \
--cc=Alexander.Deucher@amd.com \
--cc=Felix.Kuehling@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=lijo.lazar@amd.com \
--cc=maraeo@gmail.com \
--cc=mario.limonciello@amd.com \
--cc=natalie.vock@gmx.de \
--cc=tursulin@ursulin.net \
/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