diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 23:50:00 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 23:50:00 -0400 |
| commit | e6e6dcddf9bc109885bcf4211c31aa82d67f5f2f (patch) | |
| tree | d91b1f5c5ee86b61d76d0eb7409dbbdea84156dd /kernel/gsp_phys_gpu.h | |
| parent | fe163078694a9bf870e7aff1fe161a87fb63d137 (diff) | |
| download | open-iov-e6e6dcddf9bc109885bcf4211c31aa82d67f5f2f.tar.gz open-iov-e6e6dcddf9bc109885bcf4211c31aa82d67f5f2f.zip | |
vgsp: m69 - window-0 shadow pool for the QMD program/param pages
m68 proved the program page's shadow copy contains real SASS (SASS_version
0x75) and the prefetch pair is fixed, yet the engine still never completes
and never writes its release anywhere - including a window-0 module sem.
Best remaining suspect: the window-1 scratch VA range (PT chain installed by
DMA_UPDATE_PDE_2 pdeIndex=1) has never been proven readable by the GR engine
core, unlike the window-0 GPFIFO/PB/QMDWIN small-PT line. m69 plants 8
module pages at VAs 0x108000..0x10f000 (slots 0x108..0x10f, same 128 B PT
fetch line, planted before first fetch like qmdwin), copies the resolved
program/param page content into them at launch and rewrites the QMD pointer
pairs there (param=32, program=48). Param: gsp_phys_rmcall_gr_shadow_win0.
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
| -rw-r--r-- | kernel/gsp_phys_gpu.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h index 5c1207c..196e844 100644 --- a/kernel/gsp_phys_gpu.h +++ b/kernel/gsp_phys_gpu.h @@ -333,6 +333,10 @@ int gsp_phys_rmcall_gr_rel_mod_value(void); * entries are host-readable (default 0 = server FBMEM first). */ int gsp_phys_rmcall_faultbuf_sys_value(void); +/* m69: copy forwarded GR program/param pages into the window-0 shadow pool + * (proven small-PT line) instead of the window-1 scratch range (default 0). */ +int gsp_phys_rmcall_gr_shadow_win0_value(void); + /* * Ladder VAS ownership selector (gsp_phys_rmcall_vas_shared; default 0). * 0 = FERMI_VASPACE_A is allocated IS_EXTERNALLY_OWNED (historical ladder |
