From 1e346e6b206127d701a5b6ba27c6e31255c308ef Mon Sep 17 00:00:00 2001 From: Alexey Kondratiev Date: Tue, 24 Jun 2025 19:33:16 +0000 Subject: [PATCH 1/2] fixng wave_end trap handling --- .../core/runtime/trap_handler/trap_handler_gfx12.s | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s b/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s index 735e383dd..e6ec71842 100644 --- a/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s +++ b/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s @@ -161,14 +161,12 @@ trap_entry: .not_illegal_instruction: s_bitcmp1_b32 ttmp2, SQ_WAVE_EXCP_FLAG_PRIV_WAVE_START_SHIFT - s_cbranch_scc0 .not_wave_end + s_cbranch_scc0 .not_wave_start s_or_b32 ttmp3, ttmp3, EC_QUEUE_WAVE_TRAP_M0 .not_wave_start: s_bitcmp1_b32 ttmp2, SQ_WAVE_EXCP_FLAG_PRIV_WAVE_END_SHIFT s_cbranch_scc0 .not_wave_end - s_bitcmp1_b32 ttmp13, SQ_WAVE_TRAP_CTRL_WAVE_END_SHIFT - s_cbranch_scc0 .not_wave_end s_or_b32 ttmp3, ttmp3, EC_QUEUE_WAVE_TRAP_M0 .not_wave_end: From e7ed22b3c858dd0cf520c55e8bb8d6e2ea37c27f Mon Sep 17 00:00:00 2001 From: "Kondratiev, Alexey" Date: Tue, 24 Jun 2025 15:57:07 -0400 Subject: [PATCH 2/2] Fixing the comment for EXCP_FLAG_PRIV.WAVE_END Signed-off-by: Kondratiev, Alexey --- .../hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s b/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s index e6ec71842..5618c9aba 100644 --- a/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s +++ b/runtime/hsa-runtime/core/runtime/trap_handler/trap_handler_gfx12.s @@ -134,7 +134,7 @@ trap_entry: // -> WAVE_APERTURE_VIOLATION // - EXCP_FLAG_PRIV.ILLEGAL_INST -> WAVE_ILLEGAL_INSTRUCTION // - EXCP_FLAG_PRIV.WAVE_START -> WAVE_TRAP - // - EXCP_FLAG_PRIV.WAVE_END && TRAP_CTRL.WAVE_END -> WAVE_TRAP + // - EXCP_FLAG_PRIV.WAVE_END -> WAVE_TRAP // - TRAP_CTRL.TRAP_AFTER_INST -> WAVE_TRAP // - EXCP_FLAG_PRIV.ADDR_WATCH && TRAP_CTL.WATCH -> WAVE_TRAP // - (EXCP_FLAG_USER[ALU] & TRAP_CTRL[ALU]) != 0 -> WAVE_MATH_ERROR