diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-05 15:58:43 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-05 15:58:43 -0400 |
| commit | de963552514e4becb67c9909a0db90353a5ef121 (patch) | |
| tree | 967d138efce51976fd29968a0eb3ce39e8d12388 /kernel/gsp_phys_gpu.h | |
| parent | d4b81d08e1f1aa01c5b6403f5dda3d5fc5c94e76 (diff) | |
| download | open-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.h | 18 |
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 |
