From 2f249817df327f5dcccf0464ad517fa60d6071d3 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Fri, 2 Oct 2026 10:58:17 -0400 Subject: gsp-phys: GR engine context allocate/map/promote before the GR sem push (default off; live-unverified at promote) --- kernel/gsp_phys_booter.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'kernel/gsp_phys_booter.h') 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 -- cgit v1.2.3