summaryrefslogtreecommitdiffstats
path: root/kernel
Commit message (Collapse)AuthorAge
* vgsp: mode 35 m62 readback + m63 E2 lane-enable tailArthur Hanson Rasmusson5 days
| | | | | | | | | | | | | | | m62 diagnostic: V7 instance/ramfc on host-visible sysmem chunks so the server's WFI-pointer/TARGET-bit writes are decodable (captured lane uses unreadable FBMEM slices); decode calls post-promotes and post-construct. m63 E2: send the real CUDA lane-enable tail after stage-4 schedules (R2 #1059 NV2080_CTRL_CMD_GR_SET_CTXSW_PREEMPTION_MODE flags=CILP_SET hChannelGroup=TSG cilp=CILP on the subdevice, #1061 NVA06C_CTRL_CMD_SET_TIMESLICE 0x800 on the TSG, #1063 NV01 device 0x00802009 enable=1). Ground truth: live real CUDA runs with FECS_CURRENT_CTX VALID=1; our m61 snapshots show V7's context never valid, and the SKED CWD table never leaves the cold value. Best-effort, mode-35 only.
* vgsp: mode 35 R1 - VA-only ctx-buffer booking promote on V7 (R2 #879 shape); ↵Arthur Hanson Rasmusson5 days
| | | | | | | | | | | | | 0xc5c0 construct now returns 0x0 The construct's internal vaListFindVa (0x52cf9c0, KGC shared +0x370) needs the channel VAS present in the per-context ctx-buffer VA maps; F2's mapped MAIN promote only wrote the per-TSG ENGINE_CTX_DESCRIPTOR vaList. Send the capture's #879-shaped 10-entry VA-only promote {5,11,9,10,4,6,0,3,1,2} (va only, pa/size/attr/init/non all zero) after F2 and before the TURING_COMPUTE_A construct. m61: promote accepted status=0x0; TURING_COMPUTE_A on V7 alloc returns status=0x0 (hObject=0xcaf000a8); REAL GR SEM now fires on V7. Forwarded guest QMD still does not schedule (qmd_rel=5, relw=5).
* vgsp: ctxshare_force probe - keep the commit carrier A share-less (share on ↵Arthur Hanson Rasmusson6 days
| | | | V6 only; m59 A+share promote rejected)
* vgsp: ctxshare_force probe - share on the proven mode-31 execution channel ↵Arthur Hanson Rasmusson6 days
| | | | (V6+sibling A attach via params init)
* vgsp: mode 35 - revert the m56 SKIP flags (SKIP channels cannot promote); ↵Arthur Hanson Rasmusson6 days
| | | | keep the F3 KGR queries
* vgsp: mode 35 F3 - send the real client's KGR static ctx-buffer query set ↵Arthur Hanson Rasmusson6 days
| | | | before the channel batch (capture #388-402; a2a/a32 may prepare the server per-context tables the 0x57 companion needs)
* vgsp: mode 35 m56 probe - add SKIP_SCRUBBER|SKIP_CTXBUFFER_ALLOC to V7 flags ↵Arthur Hanson Rasmusson6 days
| | | | (V6-proven construct path while the share stays attached)
* vgsp: mode 35 F2c - hObjectError as a real class-0x40 FBMEM memory object ↵Arthur Hanson Rasmusson6 days
| | | | (registered list object failed the promote resolver lookup 0x57)
* vgsp: mode 35 F2b - register the USERD chunk as a memory object and pass ↵Arthur Hanson Rasmusson6 days
| | | | hUserdMemory[0] (server construct worker looked one up; 0x57 without it)
* vgsp: mode 35 F2 - MAIN mapped promote (pa+va, nonmapped=0) after the lane ↵Arthur Hanson Rasmusson6 days
| | | | promote to reach the per-buffer commit (sets pEngCtx+0x135; gate for the 0xc5c0 construct)
* vgsp: mode 35 - V7 gpFifoEntries 1024 (captured #825; one-variable fidelity ↵Arthur Hanson Rasmusson6 days
| | | | pass)
* vgsp: mode 35 - best-effort V7 construct + promote gate exemption (m50 ↵Arthur Hanson Rasmusson6 days
| | | | stage-3 -22 fix; lane continues to stage 4/forward)
* vgsp: mode 35 - V7 USERD index 4 (free fixed slot; index 3 collided with ↵Arthur Hanson Rasmusson6 days
| | | | golden D, NV_ERR_NO_MEMORY 0x51)
* vgsp: mode 35 - real-client user lane (TSG fault buffers, share, V7 channel, ↵Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | | | | | | | | | | | | | 3-entry PA-only promote, V7 execution swap; compile-verified, untested) Replays the decoded real 570.144 GSP client compute-context sequence on the ladder, additive to modes 0-34: - TSG fault-method buffers: one 0xa06c010a on the ladder TSG with two 0x2000 {base,size,alignment=1,addressSpace,cache} descriptors + zero bar2Addr words + numValidEntries=2; server FBMEM first, registered host sysmem fallback (capture order TSG -> faults -> share -> channel). - FERMI_CONTEXT_SHARE_A (0x9067) reuse of the mode-34 helper (ladder TSG, SHARED_MANAGEMENT VAS, flags SYNC -> VEID 0). - V7 channel 0xcaf000a0: class 0xc46f, TSG parent, hVASpace=0, hContextShare, captured flags 0x00201320 and internalFlags 0x1d, engineType 0, sysmem hObjectError/errorNotifierMem, FBMEM instance/ramfc, sysmem USERD. - One atomic 3-entry GPU_PROMOTE_CTX on V7 (MAIN/PM/PATCH, PA-only, physAttr 4, bInitialize=1, bNonmapped=1) before any 0xc5c0 construct. - TURING_COMPUTE_A (0xc5c0) on V7 after the accepted promote; execution channel swapped to V7 for stage 4 BIND/SCHEDULE/token/GR-sem and forwarding (V6 allocated but unscheduled; its promote suppressed). - Mode-35-only golden9 entry refresh: FECS_EVENT attr=5 with the ctx-window VA in the physAddr field, PRIV_ACCESS_MAP va=0/bNonmapped=1. - gr_promote clamp/param doc extended to 0..35.
* vgsp: mode 34 - add GOLDEN_CTXSHARE to the GR ctx FBMEM MAIN selector (m46 ↵Arthur Hanson Rasmusson6 days
| | | | sysmem MAIN hang class)
* vgsp: add read-only gsp-phys-reg-probe debugfs register snapshotArthur Hanson Rasmusson6 days
| | | | | | | | | | | | Add a read-only BAR0 register-liveness probe at /sys/kernel/debug/vgsp/gsp-phys-reg-probe that prints "name addr value" for the PMC chip-id/clock gate, PGRAPH status/fault, SKED/HWW and FECS/GPCCS falcon state, the front-end QMD virtual-window controls and the GSP context registers, followed by decoded field lines. Read-only (readl only); additive to gsp_phys_boot_debugfs_init(); no ladder logic changed. Used to distinguish a clock/power-gated engine from a halted or running one during a physical cycle.
* vgsp: mode 34 - context-share golden execution lane (compile-verified, untested)Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | Mode 34 allocates FERMI_CONTEXT_SHARE_A (0x9067) on the ladder TSG before the golden replay; the replay's golden channel A (0xcaf00054) attaches to the share with hVASpace=0 and keeps the captured unwired shape, runs its 9-entry promote and carries TURING_A (0xc597) plus a TURING_COMPUTE_A (0xc5c0, handle 0xcaf00090). V6 (0xcaf00034) attaches to the same share, constructs no class object of its own, and its FWCLIENT promote is suppressed; stage 4 and the forwarded launches run on V6 in A's shared VEID/subcontext. Default off; all paths gated by gsp_phys_rmcall_gr_promote=34. New pr_info cycle landmarks for the share alloc, A alloc/promote, A construct (rpc_result), V6 alloc and the instance/RAMFC decode. No hardware run.
* vgsp: mode 33 construct A object pre-promote (m43 post-promote 0x57)Arthur Hanson Rasmusson6 days
|
* vgsp: mode 33 - wired golden sibling A as execution channel ↵Arthur Hanson Rasmusson6 days
| | | | (compile-verified, untested)
* vgsp: SKED/FE readback + QMD w50..53 + two-step PCAS gate (m41 instrumentation)Arthur Hanson Rasmusson6 days
|
* vgsp: m37 pcas gate (window-only stock form) + QMD w48..50 post-mortemArthur Hanson Rasmusson6 days
|
* vgsp: preserve the pointer page offset in the shadow QMD rewrite (program ↵Arthur Hanson Rasmusson6 days
| | | | +0x800)
* vgsp: m32 rank-2 qmdwin - relocate the inline-QMD destination to a proven ↵Arthur Hanson Rasmusson6 days
| | | | ring-chunk page (compile-verified, untested)
* vgsp: mode 31 sibling A promote skips the one-shot FECS entry (m30: atomic 0x1f)Arthur Hanson Rasmusson6 days
|
* vgsp: mode 31 sibling A free ChID index (m29 decode: fixed index 3 collided ↵Arthur Hanson Rasmusson6 days
| | | | with D)
* vgsp: mode 31 sibling A userd memdesc (m28: TSG channel alloc rejected ↵Arthur Hanson Rasmusson6 days
| | | | without it)
* vgsp: mode 31 FBMEM ctx + pre-PDB aux prepare (m27: sysmem MAIN hung the ↵Arthur Hanson Rasmusson6 days
| | | | golden construct)
* vgsp: gate mode 31 on golden replay + physical backend (SA-CHK F1 fix)Arthur Hanson Rasmusson6 days
|
* vgsp: default the QMD-virt 0x29c pair off (m26 falsified it; non-vendor ↵Arthur Hanson Rasmusson6 days
| | | | without BASE)
* vgsp: mode 31 - D-golden-first TSG-sibling ordering (compile-verified, untested)Arthur Hanson Rasmusson6 days
|
* vgsp: m26 GR launch discriminator - rebuilt window (prelude off), QMD-virt ↵Arthur Hanson Rasmusson6 days
| | | | 0x29c, w63 sentinel
* vgsp: TSG-sibling mode 30, UVM-stall Patch C, QMD shadow-window ensure + ↵Arthur Hanson Rasmusson6 days
| | | | launch diagnostics
* vgsp: install the Tier-2 scratch-pool window spine via PDE_UPDATE + IQ2M ↵Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | | | | | | | sentinel diagnostic - The Tier-2 shadow VAs (0x200000 + page<<21 + line<<16) had no PTE chain in the engine's table view on the shared-management VAS: pdb_build's client PD0 spine for the guest scratch PT pool is discarded by the server's root migration, so every param/program/release/alias leg the launch rewrites to a shadow VA was unreachable by the engine. Install each scratch pool window lazily through DMA_UPDATE_PDE_2 (same control shape as the Tier-1 installer, pool chunk as the leaf PT) the first time a shadow line in it is consumed; shared VAS only, idempotent via rmcall_guest_pt_win_mask. m17 confirmed the install is accepted (pdeIndex=1 VA 0x200000 status 0x0). - IQ2M sentinel: write 0xdeadbeef to the inline-QMD destination word 0 after the prewrite and report iq2m=ran/not-run in the post-mortem so 'engine stalled before the inline window' is distinguishable from 'QMD deposited but not executed' without a server capture.
* vgsp: mode-29 construct-last golden execution lane + fetch-aligned USERD ↵Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | | | | | control offset - New mode 29 (GOLDEN_EXEC_LAST): identical to mode 28 but skips the TURING_COMPUTE_A alloc on the client-wired golden channel (every GR object construct there blocks RM); stage 3 completes with the golden handle swapped and BIND/GPFIFO_SCHEDULE/token are accepted. Param clamp 0..29. - Shape bits: bit6 TSG parent (alloc accepted, same no-fetch), bit7 host USERD control offset 0 (THE FETCH FIX: the server applies the sysmem userd_mem base directly and ignores the captured USERD_INDEX_VALUE=3, so GP_PUT/GP_GET live at +0x8c/+0x88; m14: GP_GET advanced 1), bit8 pre-promote compute object (invalid order: RM blocked -110 + NOCAT 0x52a8b04). - Failure diagnostics: REAL GR SEM FAILED now dumps both candidate USERD control offsets (ctl and alt).
* vgsp: PRIV VA-only booking bit + verify the exact slot before consuming ↵Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | unreadable CE entries - fwclient mask bit 15 (0x8000): book the PRIV_ACCESS_MAP VA (the FWCLIENT entry form is init-only; the golden9 form carries the VA at VA_GOLDEN9_PRIV). Accepted on V6 (status 0), completing the maximal promoted context. - gsp_sema_service: svc_entry_want_reached() verifies the exact tracking slot against entry_want before the three unreadable-CE consume shortcuts treat the entry as delivered; when the slot lags, re-seed the expectation and let svc_fake_release author or queue the exact slot (UVM registration stall pair with the pool-VA verified-resolver queue).
* vgsp: golden-exec shape bisection + fwclient per-entry promotion + pool-VA ↵Arthur Hanson Rasmusson6 days
| | | | | | | | | | | | | | | | | | | | | | | | | stall fix - Mode 28 golden execution lane behind gsp_phys_rmcall_gr_promote=28 with a shape bitmask (gsp_phys_rmcall_golden_exec_shape: ring / entries=8 / sysmem USERD / USERD size / hObjectBuffer=VAS / skip replay TURING_A) and a USERD control-offset helper. Finding: the RM-managed golden channel hangs any GR object construct (-110, no assert) as soon as client submission wiring (ring or sysmem USERD) is attached, so only the captured server-owned shape constructs; the machinery is kept for future wiring ideas. - fwclient mask bit 11 (0x800): send each non-MAIN FWCLIENT promote entry as its own one-entry control and continue past refusals. V6 acceptance matrix: PM, PATCH, PRIV_ACCESS_MAP, UNRESTRICTED_PRIV_ACCESS_MAP accepted, FECS_EVENT refused 0x1f. - fwclient mask bit 12 (0x1000): golden9 VA-only global bookings (BUNDLE_CB, PAGEPOOL, ATTRIBUTE_CB, RTV_CB_GLOBAL) accepted on V6; bits 13/14 (0x2000/0x4000): FECS PA-only (refused 0x1f) and FECS VA-only (accepted). - gsp_phys_rmcall_srv_main_ignore: ignore a server-reported MAIN in the srv-ctx commit and force the client INITIALIZE_CTX + VA-only fallback. - gsp_sema_service: pool semaphores never fall back to the learned map; queue the absolute release via svc_pending_add until svc_pool_pa_resolve succeeds, and judge pool slots through the verified resolver in svc_apply_pending and the release decode (UVM registration stall fix).
* vgsp: size the fwclient non-MAIN promote entries from the golden FBMEM aux ↵Arthur Hanson Rasmusson6 days
| | | | buffers
* vgsp: mode 27 - golden9 context promote on the V6 execution channel onlyArthur Hanson Rasmusson6 days
|
* vgsp: verbatim replay of the captured GR launch prelude+windowArthur Hanson Rasmusson6 days
|
* vgsp: replay the vendor per-channel compute init before the forwarded GR launchArthur Hanson Rasmusson6 days
|
* vgsp: prewrite QMD to destination and send explicit PCAS INVALIDATE|SCHEDULE ↵Arthur Hanson Rasmusson6 days
| | | | (IQ2M bisect)
* vgsp: drop SET_OBJECT from the forwarded GR launch replay (guest push has none)Arthur Hanson Rasmusson6 days
|
* vgsp: dump the full captured guest push stream for method decodeArthur Hanson Rasmusson6 days
|
* vgsp: mode 26 - full golden9 context promote on the V6 execution channelArthur Hanson Rasmusson6 days
|
* vgsp: raise GR launch release poll to 5 s with progress telemetryArthur Hanson Rasmusson6 days
|
* vgsp: point inline-QMD launch at the guest QMD buffer + GR post-mortem loggingArthur Hanson Rasmusson6 days
|
* vgsp: alias-map indirect high-VA GR pages and fix up shadow pointersArthur Hanson Rasmusson6 days
| | | | | | | | | The mail kernel's output buffer has no QMD pointer word; the engine reaches it through a pointer inside the parameter bank, so the Tier-1 refusal at its high VA killed the launch. Alias-map such a page's guest HPA at a fresh ladder line and rewrite every matching 8-byte pointer inside the shadowed copy pages (param/program) to the alias, so engine writes land in the guest's own page and the guest's DtoH sees them.
* vgsp: track shadow ranges per record for multi-page GR buffersArthur Hanson Rasmusson7 days
| | | | | | | The inline-record path appends pages after the pointer pages, so the adjacent-entry heuristic missed the second param page. Record each shadowed range (base guest VA, line, mapped PTE count) and extend any page that continues a recorded range, up to 16 pages per 128 B line.
* vgsp: contiguous shadow PTEs for multi-page GR buffers (R4)Arthur Hanson Rasmusson7 days
| | | | | | | | | The mail launch's param buffer spans two pages but the QMD names only the base page. The second page has no pointer word, so the Tier-2 shadow path skipped it and the launch was refused. Map a page with no pointer word that is contiguous with the previous shadow-mapped page into the next PTE of the same 128 B fetch line (each line covers up to 16 consecutive 4 KB pages), keeping the rewritten base-pointer buffer contiguous for the engine.
* vgsp: raise GR forward shadow pool to 24 pagesArthur Hanson Rasmusson7 days
| | | | | | | The mail launch has 8 pointer/QMD pages plus up to two release/sem shadow lines; the 4-page pool exhausted and refused the launch even with the HPA-copy fallback. 24 covers the 16-page launch cap plus the two release shadows.