summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 12:03:02 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 12:03:02 -0400
commit98d204a990148e08dbbf99f356b11ab377e0fdf2 (patch)
tree71d742895320794ac4e1ba235e95b250f311f012 /kernel/gsp_phys_gpu.c
parent4409247a4fc5cd5c0db6b85f157f85fcd962c51a (diff)
downloadopen-iov-98d204a990148e08dbbf99f356b11ab377e0fdf2.tar.gz
open-iov-98d204a990148e08dbbf99f356b11ab377e0fdf2.zip
vgsp: m86 - sticky gsp_phys_rmcall_gr_override_hex module parameter
The override blob can now be supplied at load (hex string, <= 1 page) and is parsed at the first forwarded launch, so the minimal-kernel experiment no longer depends on a debugfs write racing the guest's launch. Also observed in the m86 attempt: after many failed launches the forwarded ring desynced (USERD GP_PUT rewound to 1 while the engine's GP_GET was 513; IQ2M sentinel intact, no FE fetch) - a fresh boot is required per experiment.
Diffstat (limited to 'kernel/gsp_phys_gpu.c')
-rw-r--r--kernel/gsp_phys_gpu.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c
index e3ca2e8..ee6625c 100644
--- a/kernel/gsp_phys_gpu.c
+++ b/kernel/gsp_phys_gpu.c
@@ -796,6 +796,23 @@ unsigned int gsp_phys_rmcall_gr_lmem_tpc_size_value(void)
EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_lmem_tpc_size_value);
/*
+ * m86 sticky override (gsp_phys_rmcall_gr_override_hex; default empty): hex
+ * bytes stored into the program-page override at first forwarded launch, so
+ * the override survives every module reload without a debugfs write.
+ */
+static char *gsp_phys_rmcall_gr_override_hex_param;
+module_param_named(gsp_phys_rmcall_gr_override_hex,
+ gsp_phys_rmcall_gr_override_hex_param, charp, 0644);
+MODULE_PARM_DESC(gsp_phys_rmcall_gr_override_hex,
+ "Hex bytes applied to the forwarded launch's program page at the QMD offset (default empty)");
+
+const char *gsp_phys_rmcall_gr_override_hex_value(void)
+{
+ return gsp_phys_rmcall_gr_override_hex_param;
+}
+EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_override_hex_value);
+
+/*
* m84 ctx-image probe (gsp_phys_rmcall_gr_img_probe; default 0). After the
* stage-4 GR sem proof the ladder re-binds the rmcall channel to COPY0,
* copies the first 4 KB of the MAIN context image and of the VEID0 subctx