]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/amdkfd: Ensure consistent barrier state saved in gfx12 trap handler
authorLancelot SIX <lancelot.six@amd.com>
Tue, 28 Jan 2025 19:16:49 +0000 (19:16 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:30:16 +0000 (04:30 -0800)
commite68f4717a2928aa499d07a4836c2b47b7a626b06
treefe44b33f420ed6673b33d60d9a433a8a0f46ced3
parent1d83efc7e7dd43974f187d7c6b677f226af2e718
drm/amdkfd: Ensure consistent barrier state saved in gfx12 trap handler

[ Upstream commit d584198a6fe4c51f4aa88ad72f258f8961a0f11c ]

It is possible for some waves in a workgroup to finish their save
sequence before the group leader has had time to capture the workgroup
barrier state.  When this happens, having those waves exit do impact the
barrier state.  As a consequence, the state captured by the group leader
is invalid, and is eventually incorrectly restored.

This patch proposes to have all waves in a workgroup wait for each other
at the end of their save sequence (just before calling s_endpgm_saved).

Signed-off-by: Lancelot SIX <lancelot.six@amd.com>
Reviewed-by: Jay Cornwall <jay.cornwall@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org # 6.12.x
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx12.asm