summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 10:58:17 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 10:58:17 -0400
commit2f249817df327f5dcccf0464ad517fa60d6071d3 (patch)
treee939b19b183dbd1691770d7811087508a02a6737 /kernel/gsp_phys_booter.h
parentead34850aa8ba623b097b403830f3d793bddbdf7 (diff)
downloadopen-iov-2f249817df327f5dcccf0464ad517fa60d6071d3.tar.gz
open-iov-2f249817df327f5dcccf0464ad517fa60d6071d3.zip
gsp-phys: GR engine context allocate/map/promote before the GR sem push (default off; live-unverified at promote)
Diffstat (limited to 'kernel/gsp_phys_booter.h')
-rw-r--r--kernel/gsp_phys_booter.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h
index 81f1803..3a19060 100644
--- a/kernel/gsp_phys_booter.h
+++ b/kernel/gsp_phys_booter.h
@@ -416,9 +416,17 @@ int gsp_phys_boot_rm_unload(void __iomem *bar0);
* selects the GR0 engine for the same ladder: the TSG/channel carry
* engineType 1, the channel walk is a single no-retry V5 attempt, a
* TURING_COMPUTE_A (0xc5c0) engine object is allocated on the channel,
- * BIND uses engineType 1 and stage 4 releases a GR semaphore instead of
- * copying (logged as REAL GR SEM OK / REAL GR SEM FAILED); all CE
- * forwarding paths refuse once per staging. Writing 9 re-runs one GR
+ * and the GR engine-context MAIN buffer is queried (device context
+ * properties + subdevice MAX_SUBCONTEXT_PER_GROUP), allocated as one
+ * contiguous zeroed sysmem buffer, mapped through fresh PDB slots above
+ * the guest scratch pool and promoted with NV2080_CTRL_CMD_GPU_PROMOTE_CTX
+ * carrying both its PA (bInitialize) and VAS VA (bNonmapped=0) so the
+ * server commits ENG_CTX_VALID before BIND uses engineType 1; stage 4
+ * then releases a GR semaphore instead of copying (logged as REAL GR SEM
+ * OK / REAL GR SEM FAILED); all CE forwarding paths refuse once per
+ * staging. Every context query/allocation/promote failure aborts the
+ * ladder with no retry and the context buffer is freed by
+ * gsp_phys_boot_staging_free() on release. Writing 9 re-runs one GR
* semaphore release on an already-built GR ladder without a full stage
* cycle (no RPC; requires the GR object and work-submit token).
* - "gsp-phys-guest-gpa" (write-only, mode 0200): pin the one guest RAM