summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 11:57:33 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 11:57:33 -0400
commita3687334b04a605d8f326a2756bb089f08e2c716 (patch)
treea513d03abc245ac06e3a80735fde9926144f7b54 /kernel/gsp_phys_gpu.h
parentba0954db862c3ffb7b098c10f6783ee9e42ec96a (diff)
downloadopen-iov-a3687334b04a605d8f326a2756bb089f08e2c716.tar.gz
open-iov-a3687334b04a605d8f326a2756bb089f08e2c716.zip
vgsp: golden-exec shape bisection + fwclient per-entry promotion + pool-VA stall fix
- Mode 28 golden execution lane behind gsp_phys_rmcall_gr_promote=28 with a shape bitmask (gsp_phys_rmcall_golden_exec_shape: ring / entries=8 / sysmem USERD / USERD size / hObjectBuffer=VAS / skip replay TURING_A) and a USERD control-offset helper. Finding: the RM-managed golden channel hangs any GR object construct (-110, no assert) as soon as client submission wiring (ring or sysmem USERD) is attached, so only the captured server-owned shape constructs; the machinery is kept for future wiring ideas. - fwclient mask bit 11 (0x800): send each non-MAIN FWCLIENT promote entry as its own one-entry control and continue past refusals. V6 acceptance matrix: PM, PATCH, PRIV_ACCESS_MAP, UNRESTRICTED_PRIV_ACCESS_MAP accepted, FECS_EVENT refused 0x1f. - fwclient mask bit 12 (0x1000): golden9 VA-only global bookings (BUNDLE_CB, PAGEPOOL, ATTRIBUTE_CB, RTV_CB_GLOBAL) accepted on V6; bits 13/14 (0x2000/0x4000): FECS PA-only (refused 0x1f) and FECS VA-only (accepted). - gsp_phys_rmcall_srv_main_ignore: ignore a server-reported MAIN in the srv-ctx commit and force the client INITIALIZE_CTX + VA-only fallback. - gsp_sema_service: pool semaphores never fall back to the learned map; queue the absolute release via svc_pending_add until svc_pool_pa_resolve succeeds, and judge pool slots through the verified resolver in svc_apply_pending and the release decode (UVM registration stall fix).
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index a38067a..65e1e1f 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -89,6 +89,13 @@ bool gsp_phys_srv_ctxbuf_value(void);
* controls. gsp_phys_srv_ctxcommit_value() is true for any nonzero mode.
*/
bool gsp_phys_srv_ctxcommit_value(void);
+
+/*
+ * gsp_phys_rmcall_srv_main_ignore (default 0): when set, the srv-ctx commit
+ * ignores a server-reported MAIN ctx buffer and forces the client
+ * INITIALIZE_CTX + VA-only promote fallback.
+ */
+bool gsp_phys_srv_main_ignore_value(void);
int gsp_phys_srv_ctxcommit_mode(void);
/*
@@ -106,6 +113,14 @@ int gsp_phys_rmcall_channel_value(void);
u32 gsp_phys_rmcall_fwclient_mask_value(void);
/*
+ * gsp_phys_rmcall_golden_exec_shape (default 7): mode-28 golden execution
+ * channel shape bitmask. bit0 GPFIFO ring at VA_GPFIFO, bit1
+ * gpFifoEntries=8 (else the captured 32), bit2 sysmem USERD chunk (else the
+ * captured FBMEM slice).
+ */
+u32 gsp_phys_rmcall_golden_exec_shape_value(void);
+
+/*
* gsp_phys_rmcall_golden (default 0): replay the stock client's golden-image
* channel allocations in stage 3 before the ladder's own channel when set and
* gsp_phys_gpu=1. With 0, the ladder is byte-identical to before.