summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 14:03:48 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 14:03:48 -0400
commit5bb10d3780dd37fc2866a84a9f831613262d9c7a (patch)
tree836d2e74ba77c123374df0fbb28f9f078b302264 /kernel/gsp_phys_gpu.h
parent2a308ccd0786736693ef4369d387de33a0fe6447 (diff)
downloadopen-iov-5bb10d3780dd37fc2866a84a9f831613262d9c7a.tar.gz
open-iov-5bb10d3780dd37fc2866a84a9f831613262d9c7a.zip
vgsp: srv_ctxcommit mode 2 (V6 client combined init+VA entry)
Make gsp_phys_rmcall_srv_ctxcommit an int mode: 1 (default) = map + INITIALIZE_CTX + UVM-shape VA-only promote; 2 = V6 client variant, no INITIALIZE_CTX and one combined PA+VA MAIN entry with bInitialize=1 and bNonmapped=0 so the first ctxsw initializes from the golden image; 0 = pure server-managed. Lets the next supervised cycle bisect both entry shapes without a rebuild. Build clean; not hardware-tested (GPU wedged).
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index d3751c5..ad99c7d 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -81,13 +81,15 @@ bool gsp_phys_ctrl_forward_enabled(void);
bool gsp_phys_srv_ctxbuf_value(void);
/*
- * True when the gsp_phys_rmcall_srv_ctxcommit parameter is set (default 1).
- * On the server-managed ctx-buffer path (gsp_phys_srv_ctxbuf=1) the ladder
- * sends GPU_INITIALIZE_CTX + a PA-only GPU_PROMOTE_CTX for the server-reported
- * MAIN buffer. Set 0 to run the pure server-managed shape (no client promote
- * at all) for bisection.
+ * gsp_phys_rmcall_srv_ctxcommit mode (default 1). On the server-managed
+ * ctx-buffer path (gsp_phys_srv_ctxbuf=1) the ladder maps the MAIN at the
+ * ctx VA and commits it: 1 = GPU_INITIALIZE_CTX + UVM-shape VA-only
+ * GPU_PROMOTE_CTX; 2 = V6 client variant, one combined PA+VA MAIN entry with
+ * bInitialize=1 and no INITIALIZE_CTX; 0 = pure server-managed, no client
+ * controls. gsp_phys_srv_ctxcommit_value() is true for any nonzero mode.
*/
bool gsp_phys_srv_ctxcommit_value(void);
+int gsp_phys_srv_ctxcommit_mode(void);
/*
* gsp_phys_rmcall_channel: force one channel-alloc variant id on the GR