From f27e38956df2705d797f0639c8a851b0c3c41209 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 23:05:02 -0400 Subject: vgsp: mode 35 m64 - forced module-sem release discriminant + fallback poll fix + post-mortem dumps m63 (E2 lane enable) got the forwarded QMD into SKED: CWD_TABLE_0 left the cold value, CWD_TABLE_1 carried the QMD id (0x1070), SKED_ACTIVITY fired, FECS_CURRENT_CTX showed V7's instance with VALID=1 - but the release write never landed (relw=5) and no engine fault is logged. m64 discriminates 'engine completed but the shadow release was lost' from 'engine never completed': param gsp_phys_rmcall_gr_rel_mod=1 forces QMD release0 to the module window-0 semaphore with a distinct payload (0x600df00d) and polls the SEM chunk. Also fixes the latent fallback (it set no poll source, so a module-sem release could never complete) and dumps the full QMD w2..w15 + the guest release page words in the post-mortem. --- kernel/gsp_phys_gpu.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'kernel/gsp_phys_gpu.h') diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h index 2087e33..84461e8 100644 --- a/kernel/gsp_phys_gpu.h +++ b/kernel/gsp_phys_gpu.h @@ -325,6 +325,10 @@ int gsp_phys_rmcall_gr_pcas_two_step_value(void); */ int gsp_phys_rmcall_gr_qmdwin_value(void); +/* m64 discriminant: force the forwarded GR QMD release0 to the module + * semaphore so engine completion is always observable (default 0). */ +int gsp_phys_rmcall_gr_rel_mod_value(void); + /* * Ladder VAS ownership selector (gsp_phys_rmcall_vas_shared; default 0). * 0 = FERMI_VASPACE_A is allocated IS_EXTERNALLY_OWNED (historical ladder -- cgit v1.2.3