From ebf3130f4a2ee733e696e65249d908668fe78d4b Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 10 Nov 2026 05:52:17 -0500 Subject: vgsp: fix X DMA init + GR backend timeouts (CONT.399) X-DMA-FIX (gsp_sema_service.c): - svc_chan_userd: run the pristine-FB USERD scan when the r496b sweep ran on a resolved-but-unvalidated ring (ring_pa!=0 but no entry decoded), not only when the ring is untranslated. A stale pin/foreign VAS left the channel without a USERD and X's 10 s pushbuffer NOP test timed out ('Failed to initialize DMA'). - svc_fb_userd_pristine_scan: claim-check with (off,off) so a second GR channel is not considered foreign against the first adopter's ring_off=0. - svc_chan_vas_candidate_promote: register the channel's own parked COPY_SERVER_PDES candidate at the pump turn once its GPFIFO entry 0 content-validates, instead of waiting for the 1000 ms age-out. - pump: fall back to svc_channel_owner_vas when hVASpace==0 (driver 'attach to the TSG address space') so the GR client ring resolves. PAIR-SAFE (gsp_phys_booter.c): default sema_gl_pair_close_entry and sema_gl_sph_bind_pair_safe ON. An unclosed BEGIN/END pair made the replayed window raise ILLEGAL_METHOD_IN_BEGIN_END (Class Error 0x2018 EC 0x0d), the FE parked before the release semaphore, and draws timed out (backend_timeout). Diagnostics: CB-DIAG/CB-DIAG2 per-push fixed-CB capture summary. Verified: X direct-rendering green on attempt 1; work_gr backend_timeout=0 (was 6), backend_ok=5-7. --- kernel/gsp_phys_booter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/gsp_phys_booter.c') diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index 733937c..189d8b7 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -18567,7 +18567,7 @@ MODULE_PARM_DESC(sema_gl_pair_orphan_drop, * window, then let the normal walk rebase the model. Gated: default 0 * (legacy bytes). */ -static bool gsp_phys_rmcall_gr_pair_close_entry; +static bool gsp_phys_rmcall_gr_pair_close_entry = true; /* PAIR-SAFE: default ON (CONT.399) */ module_param_named(sema_gl_pair_close_entry, gsp_phys_rmcall_gr_pair_close_entry, bool, 0644); MODULE_PARM_DESC(sema_gl_pair_close_entry, @@ -18585,7 +18585,7 @@ MODULE_PARM_DESC(sema_gl_pair_close_entry, * SET_PIPELINE_SHADER TYPE and REGISTER_COUNT are emitted BEFORE its SPH * address pair (the client's own stage-1 order). Default 0 = legacy bytes. */ -static bool gsp_phys_rmcall_gr_sph_bind_pair_safe; +static bool gsp_phys_rmcall_gr_sph_bind_pair_safe = true; /* PAIR-SAFE: default ON (CONT.399) */ module_param_named(sema_gl_sph_bind_pair_safe, gsp_phys_rmcall_gr_sph_bind_pair_safe, bool, 0644); MODULE_PARM_DESC(sema_gl_sph_bind_pair_safe, -- cgit v1.2.3