summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 15:58:43 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 15:58:43 -0400
commitde963552514e4becb67c9909a0db90353a5ef121 (patch)
tree967d138efce51976fd29968a0eb3ce39e8d12388 /kernel/gsp_phys_gpu.h
parentd4b81d08e1f1aa01c5b6403f5dda3d5fc5c94e76 (diff)
downloadopen-iov-de963552514e4becb67c9909a0db90353a5ef121.tar.gz
open-iov-de963552514e4becb67c9909a0db90353a5ef121.zip
vgsp: GR golden-replay groundwork and FWCLIENT promote mode 24
- golden replay (gsp_phys_rmcall_golden, default off): replay the stock client's post-load golden channel allocations (separate VAS, pushbuffer objects, USERD, bare GR channel, TURING_A 3D object) before the ladder channel; best-effort: a failure warns and the ladder continues. - on-ladder TURING_A (0xc597) 3D object allocation before the compute object (best-effort) to initialize server-side GR-instance state. - promote mode 24: the reference FWCLIENT non-3D set (MAIN, PM, PATCH, FECS_EVENT, PRIV_ACCESS_MAP, UNRESTRICTED_PRIV_ACCESS_MAP) as one GPU_PROMOTE_CTX on the KMD channel, with per-entry logging and explicit omission semantics; mode clamps/descriptions extended to 24. Live: mode 23 soft-stops 0x1f on the server-managed shared channel and reaches the per-buffer commit on the KMD channel, where it stops at the missing engine-context memdesc; mode 24 emits all six entries and is refused with 0x1f before BIND. All cycles release clean, GPU green.
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index ad99c7d..8322725 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -99,6 +99,13 @@ int gsp_phys_srv_ctxcommit_mode(void);
int gsp_phys_rmcall_channel_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.
+ */
+bool gsp_phys_rmcall_golden_enabled(void);
+
+/*
* True when the gsp_phys_work_forward module parameter is set (default 0: the
* guest's CE pushes stay software-emulated exactly as before). When set, the
* sema service shadows each decoded CE push as one copy on the debugfs ladder's
@@ -229,8 +236,15 @@ int gsp_phys_rmcall_engine_value(void);
* PROMOTE_CTX with hVirtMemory, virtAddress/size and entryCount=0, so
* the server creates the memdesc/vaList entry itself;
* 7 = no-entry bare (virtAddress, size): PROMOTE_CTX with entryCount=0 and
- * no hVirtMemory (the other documented no-entry branch).
- * The parameter's set callback clamps any value outside 0..7 to 0 with a
+ * no hVirtMemory (the other documented no-entry branch);
+ * 8..23 = later KMD-channel/old-interface/hVirtMemory/FBMEM bisection
+ * shapes; see gsp_phys_gpu.c MODULE_PARM_DESC for the full list;
+ * 24 = the reference FWCLIENT non-3D set (MAIN/PM/PATCH/FECS_EVENT/
+ * PRIV_ACCESS_MAP/UNRESTRICTED_PRIV_ACCESS_MAP) as one control on the
+ * V6 KMD-managed channel: combined PA+VA entries where the ladder has
+ * a VA, PM/PRIV_ACCESS_MAP init-only, unsourceable buffers omitted
+ * and logged.
+ * The parameter's set callback clamps any value outside 0..24 to 0 with a
* warning and warns on every nonzero enable (a failed promote can assert
* GSP-RM and wedge the device; recovery needs a reboot with human approval).
* The booter snapshots the value when the rm-call ladder's stage 3 starts