<feed xmlns='http://www.w3.org/2005/Atom'>
<title>open-iov.git/docs/03-architecture/08-physical-gpu-integration.md, branch m33</title>
<subtitle>Open-IOV vGPU-IO: host-side GSP emulation for unmodified NVIDIA guest drivers
</subtitle>
<id>https://git.vgpu.io/open-iov.git/atom?h=m33</id>
<link rel='self' href='https://git.vgpu.io/open-iov.git/atom?h=m33'/>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/'/>
<updated>2026-10-06T19:18:39+00:00</updated>
<entry>
<title>docs: add the GR compute-launch frontier page and align execution status across the tree</title>
<updated>2026-10-06T19:18:39+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-06T19:18:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=929646875d80408a21c642ca88ef70efbc0d736a'/>
<id>urn:sha1:929646875d80408a21c642ca88ef70efbc0d736a</id>
<content type='text'>
New page docs/04-implementation/03-execution-frontier.md describes the chain
that must fire for a guest CUDA launch (guest push -&gt; GPFIFO/front-end -&gt;
inline launch-descriptor install -&gt; engine read/dispatch -&gt; completion),
where the leading edge is (the descriptor install path), how we know
(front-end vs engine-authored observables and their limits), what is
exonerated (context validity at dispatch, destination window mapping,
fetch alignment, shared-buffer rule, parenting), the ranked issues (verbatim
prelude targets, missing descriptor-virtualization control, sentinel
hygiene), live investigation lines and labelled theories.

Align every page that still said GR execution is blocked on engine-context
validity to the current frontier, and add the new page to the README reading
order (row 15, later rows renumbered). Docs only; no code.
</content>
</entry>
<entry>
<title>kernel: GR context-promote bisection modes 4-17 and server-managed-ctxbuf registry variant; complete vgsp rename; docs/tooling refresh</title>
<updated>2026-10-02T19:13:06+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-02T19:13:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=c9bf1cf098c8ea4daeb3e6c9b274a9025c03045d'/>
<id>urn:sha1:c9bf1cf098c8ea4daeb3e6c9b274a9025c03045d</id>
<content type='text'>
- gsp_phys_booter: GR promote bisection modes 4-17 (two-phase zero-field VA,
  batched entries, hVirtMemory, bare VA, KMD SKIP_CTXBUFFER_ALLOC channel,
  old-interface GPU_INITIALIZE_CTX, FBMEM context buffer, UVM-faithful PA-only,
  PATCH/PM auxiliary promotes, server-managed no-promote path); PATCH/PM
  geometry queries and buffers; pre-boot SET_REGISTRY profile selection
- gsp_phys_gpu: gsp_phys_rmcall_gr_promote clamp 0..17 and gsp_phys_srv_ctxbuf
  parameter; registry image variant with RMSetClientRMAllocatedCtxBuffer=0
- vgsp rename across kernel, scripts, tools and docs (module vgsp.ko,
  /sys/kernel/debug/vgsp/, vgsp-&lt;subsystem&gt;: log prefixes)
- risc-v-gsp-rm-debugger user-facing rename and docs/CI refresh; guest-diag
  tool updates; README/SBOM/install/Makefile sync

Live status: CE ladder and P6 guest-copy forwarding green; GR engine context
commit still open (all promote shapes accepted or cleanly refused; the channel
stays CTXNOTVALID) - see Handoff-vGPU-IO.md Addendum 21 (local).
</content>
</entry>
<entry>
<title>docs: engineering-operations playbook and project-wide status accuracy pass</title>
<updated>2026-10-02T15:28:49+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-02T15:28:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=c17da06d6cd8b9c69449904637bf37729a962989'/>
<id>urn:sha1:c17da06d6cd8b9c69449904637bf37729a962989</id>
<content type='text'>
- docs/eng-ops.md gains Part II, live physical-backend engineering
  operations: hard rules, the full module-parameter matrix, the routine
  supervised cycle and clean-release checklist, the debugfs inventory,
  how to read gsp-phys-state, a debugging scenario catalogue
  (CTXNOTVALID/promote wedge, fail-safe WPR2, unload hangs, guest wedges,
  MMU/PTE and PBDMA faults, relay symptoms), a hazard register (crash
  causes and debugging side effects), the physical-backend OODA loop, and
  the work-context map with porting flows
- architecture, implementation, operations, orientation, getting-started,
  portability, ecosystem and reference docs corrected to the current
  state: CUDA driver-API smoke green, CE-class work forwarding and
  engine-authored releases plus fault relay in place (default off), GR
  execution blocked on engine-context validity, the promote wedge and
  designed locked fail-safe, and P5 wave-2 subsumed
- internal-reference cleanup in tracked docs (no analysis-source or
  local-archive references); historical architecture document bannered
- README reading list and STATE-CURRENT frontier refreshed; new pages
  (runbook, green-eye user guide, porting sequence, porting/packaging
  notes) linked from the tree

Link check: scripts/check-docs-links.py passes (56 files, no broken links).
</content>
</entry>
<entry>
<title>gsp-phys: populate the chipset/CL block of the pre-boot system info</title>
<updated>2026-10-01T19:35:35+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T19:35:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=fe3b01b72cba79d4b14875e6940a87987ad196a9'/>
<id>urn:sha1:fe3b01b72cba79d4b14875e6940a87987ad196a9</id>
<content type='text'>
Fill the GspSystemInfo chipset fields the production client syncs before
the GSP boot instead of leaving them zero:

- clPdbProperties (bitmask in the client's clSyncWithGsp order): bit 0
  (config space accessible, from the OS MCFG/ECAM availability), bit 7
  and bit 21 (Intel Skylake-family upstream-port setup: ASPM POR list,
  root-port nosnoop WAR), bit 13 (upstream port ASPM L1 capable), bit 27
  (LTR supported+enabled up to the root port) and bit 32 (IO coherent).
  PDB_PROP_CL_UNSUPPORTED_CHIPSET is never assigned by the client, so the
  faithful unmatched-chipset value is 0.
- Chipset = 0 (CS_UNKNOWN) for a host bridge with no chipsetInfo[] entry,
  the reference's no-match fallback.
- FHBBusInfo/chipsetIDInfo: 10-byte BUSINFO blobs of the first host
  bridge of the GPU's domain (device, vendor, subdevice, subvendor,
  revision), with the subsystem-capability fallback on chipsetIDInfo.

acpiMethodData is intentionally sent all-zero (bValid=0): no ACPI/AML
calls are made and every consumer tolerates the no-data encoding. All
device lookups use refcounted pci_get_device()/pci_dev_put().
</content>
</entry>
<entry>
<title>gsp-phys: queue the pre-boot GSP_SET_SYSTEM_INFO and SET_REGISTRY async RPCs</title>
<updated>2026-10-01T17:11:30+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T17:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=4254b221f393e5262083e5d7158110b934a52e57'/>
<id>urn:sha1:4254b221f393e5262083e5d7158110b934a52e57</id>
<content type='text'>
The real-GSP boot path staged the message queue but never queued the two
fire-and-forget init RPCs the production client places in it before the
booter starts. GSP-RM therefore created its GPU object without any system
information and aborted RM init (live GSP_INIT_DONE rpc_result=0x59), with
the resource-manager's object-database lookups asserting from the first
journal record.

Submit function 72 (GSP_SET_SYSTEM_INFO, 928-byte v17_00 payload carrying
the BAR physical bases, domain/bus/slot, PCI IDs, the BAR0 config-mirror
offset, link/FLR capabilities and upstream-port flags read from the
pci_dev) and function 73 (SET_REGISTRY, header-only empty table, which the
server explicitly accepts) through the existing submit-only queue producer
after all stage-3d preconditions and before the GSP falcon reset/Booter
Load kick. The wire layouts are re-declared in the module with per-field
static asserts against the reference ABI; payloads are heap-allocated, so
no new stack frames are introduced.
</content>
</entry>
<entry>
<title>docs: record next-cycle readiness for the physical GSP boot</title>
<updated>2026-10-01T14:40:54+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T14:40:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=3f3149198b030e81287d7abd473ce4cee5e9e178'/>
<id>urn:sha1:3f3149198b030e81287d7abd473ce4cee5e9e178</id>
<content type='text'>
STATE-CURRENT and the integration page reflect the implemented sequencer, clean-shutdown RPC and static-info probe awaiting the next supervised live cycle.
</content>
</entry>
<entry>
<title>gsp-phys: command-queue TX and the GSP-RM unload RPC for clean teardown</title>
<updated>2026-10-01T14:13:04+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T14:13:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=582696da869374455c3bcdaf63cbcd28352da14e'/>
<id>urn:sha1:582696da869374455c3bcdaf63cbcd28352da14e</id>
<content type='text'>
Adds a minimal msgq producer on the command queue (element layout, checksum, sequence, dma_wmb before writePtr, doorbell) and submits the UNLOADING_GUEST_DRIVER RPC so GSP-RM shuts down and sets the scratch14 handoff bit the Booter Unload gate needs. Release attempts the RPC once before quiescing when a boot ran; on-demand testing is available through the debugfs file gsp-phys-unload-rpc while the module owns the GPU. GSP-RM processor suspend is polled on the GSP mailbox.
</content>
</entry>
<entry>
<title>docs: record the first real GSP boot and the live GSP-RM session</title>
<updated>2026-10-01T14:07:15+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T14:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=66172eaba3cf6ff08a5cd4b7080e05704fa3813f'/>
<id>urn:sha1:66172eaba3cf6ff08a5cd4b7080e05704fa3813f</id>
<content type='text'>
STATE-CURRENT and the architecture docs now describe the observed order (FWSEC -&gt; Booter Load -&gt; RISC-V active -&gt; event 0x1002 run-sequencer -&gt; 0x1001 init-done), the four-handoff-bit clean-release constraint, and the --boot/--keep harness contract.
</content>
</entry>
<entry>
<title>docs: record the board power-domain hazard and D0-lock mitigation for the physical backend</title>
<updated>2026-10-01T04:04:25+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T04:04:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=b18e7527047779a62a75f751f0541acf904fc9f4'/>
<id>urn:sha1:b18e7527047779a62a75f751f0541acf904fc9f4</id>
<content type='text'>
- New 4.2: describe behaviourally how the option-D claim path can
  power-gate the board on driver release (platform power resource behind
  the root port, off/on sequence via the embedded controller), the two
  observed host freezes (no crash record), and the D0 lock now applied
  across release -&gt; claim -&gt; rebind: runtime-PM forbid + D3cold disable on
  the GPU, its board companion functions and the root port, config-space
  verification while claimed and again before rebind, abort with the locks
  held on any power-loss signature, runtime-PM restore after the
  distribution driver's probe.
- 4.1/4.3: the lock is a required ownership step; returning to the normal
  driver is conditional, not assumed; real GSP boot not started.
- 2/3(A): fresh no-unbind evidence - no exported RM/vGPU symbols and no
  manager daemon in the stock distribution build.
- 6: driver-API baseline re-verified 64/64; ownership + firmware staging
  verified; power-domain lock implemented pending supervised verification.
- 7/8: residual out-of-band power-cut risk, supervised-test requirement,
  and the gsp_phys_gpu + gsp_phys_hazard_ack operating constraint.
</content>
</entry>
<entry>
<title>docs: execution-backend bring-up staged - ownership and firmware staging verified, real boot next</title>
<updated>2026-10-01T03:12:09+00:00</updated>
<author>
<name>Arthur Hanson Rasmusson</name>
<email>arthur@vgpu.io</email>
</author>
<published>2026-10-01T03:12:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vgpu.io/open-iov.git/commit/?id=6a580431c9b503a61bdde17d4a37903ff16d3bfe'/>
<id>urn:sha1:6a580431c9b503a61bdde17d4a37903ff16d3bfe</id>
<content type='text'>
</content>
</entry>
</feed>
