summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-21 11:39:25 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-21 11:39:32 -0400
commite77efad422961e5266ef30ef5ce9f49ae1fd76c1 (patch)
tree56bc8ba5002dfeda4c9cdf2745a47c50e9b063f2 /kernel/gsp_phys_gpu.h
parent9f68e5e304416a7d2148903eada9caffd7b0779e (diff)
downloadopen-iov-e77efad422961e5266ef30ef5ce9f49ae1fd76c1.tar.gz
open-iov-e77efad422961e5266ef30ef5ce9f49ae1fd76c1.zip
gr: r410 wedge quiet window - bounded idle hold before retrying a lane whose previous launch also no-wrote (r416: 58-launch sticky wedge clears after ~50 s quiet); wedge counters in state; wedge_recover v2 unmask
The r416 boot reproduced the sticky no-execute wedge inside 60 s: 58 consecutive launches accepted zero writes while the lane stayed busy (wedge_recover v1's deterministic verify masked every one of them), and the first launches were green again only after the lane sat idle ~52 s. Both r409 (~37 s idle heal) and r416 therefore show the wedge clears on idleness and persists under back-to-back retries (r154/r409), so the retry loop now holds a quiet window (gsp_phys_gr_wedge_quiet_ms, default 20000, doubling on the second quiet retry, 0 disables) before the normal fresh-bank + resched retry when the previous launch also no-wrote. The whole-launch stall budget is relaxed only on this bounded recovery path. NOWRITE lines now carry the consecutive streak and quiet/heal counters, and the state file shows nw_streak/wedge_quiet/wedge_heals. wedge_recover v2 mutates the inputs every iteration so a stale (never executed) launch can no longer match the expected values, and classifies the readback STALE-PREV(NOWRITE) vs OTHER/PARTIAL.
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index c664e12..e02d6d8 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -399,6 +399,16 @@ int gsp_phys_gr_nowrite_retries_value(void);
* and the sema service authors the QMD completion release in software. */
unsigned int gsp_phys_gr_wait_max_ms_value(void);
+/* r410 wedge quiet window: when a launch's zero-write outcome follows a
+ * previous accepted zero-write launch (the sticky per-lane no-execute wedge),
+ * hold the retry for this many ms with NO submissions to the engine before
+ * re-publishing. The wedge is proven to clear when the lane stays quiet for
+ * tens of seconds (r409 ~37 s, r416 ~52 s); immediate retries keep it alive.
+ * Base value for the first quiet retry, doubled per further attempt, clamped
+ * [0,120000]; 0 disables the quiet path (retries run back-to-back as before).
+ * Default 20000. */
+unsigned int gsp_phys_gr_wedge_quiet_ms_value(void);
+
/* m73: use host-visible sysmem chunks for V7 instance/RAMFC (m62 shape). */
int gsp_phys_rmcall_gr_inst_sys_value(void);