diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 15:19:54 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 15:19:54 -0400 |
| commit | dc5b6507889d07003cf01ed1d784c0faf48bec03 (patch) | |
| tree | 4a596499738b1b74656fbb3ce1b80aef1b130338 /kernel/gsp_phys_gpu.c | |
| parent | 929646875d80408a21c642ca88ef70efbc0d736a (diff) | |
| download | open-iov-dc5b6507889d07003cf01ed1d784c0faf48bec03.tar.gz open-iov-dc5b6507889d07003cf01ed1d784c0faf48bec03.zip | |
vgsp: m26 GR launch discriminator - rebuilt window (prelude off), QMD-virt 0x29c, w63 sentinel
Diffstat (limited to 'kernel/gsp_phys_gpu.c')
| -rw-r--r-- | kernel/gsp_phys_gpu.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c index 2f441a0..ad2244e 100644 --- a/kernel/gsp_phys_gpu.c +++ b/kernel/gsp_phys_gpu.c @@ -580,6 +580,42 @@ int gsp_phys_rmcall_gr_promote_value(void) EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_promote_value); /* + * GR launch verbatim-prelude gate (default 0). 0 = skip the captured + * 136-word verbatim guest prelude and emit the rebuilt inline-QMD window, + * i.e. the proven init(152)+window(67)+PCAS(4)+sem(8) shape; 1 = replay the + * verbatim prelude exactly as before. Read at each launch. + */ +static int gsp_phys_rmcall_gr_prelude_param; +module_param_named(gsp_phys_rmcall_gr_prelude, + gsp_phys_rmcall_gr_prelude_param, int, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_gr_prelude, + "GR launch verbatim-prelude gate (default 0: skip the captured guest prelude and emit the rebuilt inline-QMD window; 1: replay the verbatim prelude)"); + +int gsp_phys_rmcall_gr_prelude_value(void) +{ + return gsp_phys_rmcall_gr_prelude_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_prelude_value); + +/* + * QMD virtualization control gate (default 1). When set, the GR launch block + * emits NVC5C0_SET_QMD_VIRTUALIZATION_CONTROL (0x29c) = IQ2M_ADDR_ENABLE + * (bit 16) | SEND_PCAS_ENABLE (bit 24) after the compute init and before the + * inline-QMD window; 0 omits the method pair. Read at each launch. + */ +static int gsp_phys_rmcall_gr_qmdvirt_param = 1; +module_param_named(gsp_phys_rmcall_gr_qmdvirt, + gsp_phys_rmcall_gr_qmdvirt_param, int, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_gr_qmdvirt, + "Emit NVC5C0_SET_QMD_VIRTUALIZATION_CONTROL (0x29c = IQ2M_ADDR_ENABLE|SEND_PCAS_ENABLE) in the GR launch block (default 1; 0 omits the method pair)"); + +int gsp_phys_rmcall_gr_qmdvirt_value(void) +{ + return gsp_phys_rmcall_gr_qmdvirt_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_qmdvirt_value); + +/* * Ladder VAS ownership selector (gsp_phys_rmcall_vas_shared; default 0). * The H1 GR promote wall is a direct consequence of the ladder's * externally-owned FERMI_VASPACE_A: with IS_EXTERNALLY_OWNED the RM treats |
