summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-10 05:52:17 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-10 05:52:17 -0500
commitebf3130f4a2ee733e696e65249d908668fe78d4b (patch)
treec93e7b577c980a061eb567ec525a420ba8900c97 /kernel/gsp_phys_booter.c
parent90ab9baa309ae3c54d371546872c918c4c801920 (diff)
downloadopen-iov-ebf3130f4a2ee733e696e65249d908668fe78d4b.tar.gz
open-iov-ebf3130f4a2ee733e696e65249d908668fe78d4b.zip
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.
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c4
1 files changed, 2 insertions, 2 deletions
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,