diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 11:57:33 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 11:57:33 -0400 |
| commit | 3f892b2924c0bdd15aaa04899b879601bd263981 (patch) | |
| tree | 50615aa694273ec58a03eab34980c3419d82509e /kernel/gsp_phys_gpu.h | |
| parent | 333ee5389c514ce7d198b6624fc5fa1aaca22d9f (diff) | |
| download | open-iov-3f892b2924c0bdd15aaa04899b879601bd263981.tar.gz open-iov-3f892b2924c0bdd15aaa04899b879601bd263981.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.h | 15 |
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. |
