From cff1461ef459e98dea063abc72ae0819fea7b5ce Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Mon, 12 Oct 2026 00:32:00 -0400 Subject: site: open-iov.org 2026 documentation update - tools/site: Markdown-to-MediaWiki converter (tracked-paths-only link mapping, local-marker scan, About-message insert), WikiBot publisher with diff/check modes and publish manifest, live site auditor, image uploader, site-only page sources (landing page, About, index, sidebar, banner templates, About-message template). - wiki: new public deep-dive sources (project status, install, FAQ, system overview, GSP and GSP-RM, execution frontier, host module, guest stack, UVM, physical backend, driver lifecycle, risc-v-gsp-rm-debugger, hardware/software matrix, HAAEEP, glossary); refreshed CUDA userspace status; corrected cross-document links; README rewritten for the new set. - wiki/.publish-manifest.json records each published revision for rollback. --- tools/site/pages/Community.wiki | 15 ++++++ tools/site/pages/Documentation.wiki | 50 ++++++++++++++++++ tools/site/pages/Main-Page.wiki | 78 ++++++++++++++++++++++++++++ tools/site/pages/MediaWiki-Sidebar.wiki | 31 +++++++++++ tools/site/pages/Open-IOV-About.wiki | 29 +++++++++++ tools/site/pages/Template-About-message.wiki | 11 ++++ tools/site/pages/Template-Historical.wiki | 7 +++ tools/site/pages/Template-Superseded.wiki | 7 +++ 8 files changed, 228 insertions(+) create mode 100644 tools/site/pages/Community.wiki create mode 100644 tools/site/pages/Documentation.wiki create mode 100644 tools/site/pages/Main-Page.wiki create mode 100644 tools/site/pages/MediaWiki-Sidebar.wiki create mode 100644 tools/site/pages/Open-IOV-About.wiki create mode 100644 tools/site/pages/Template-About-message.wiki create mode 100644 tools/site/pages/Template-Historical.wiki create mode 100644 tools/site/pages/Template-Superseded.wiki (limited to 'tools/site/pages') diff --git a/tools/site/pages/Community.wiki b/tools/site/pages/Community.wiki new file mode 100644 index 0000000..1516783 --- /dev/null +++ b/tools/site/pages/Community.wiki @@ -0,0 +1,15 @@ +{{About message}} + +== Community == +'''Chat:''' [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] + +'''Source code and issues:''' [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] + +== Contributing == +The project welcomes contributors of every kind. The most valuable contribution is evidence: a new hardware or software combination tested with the project's methodology, with the captures listed in the repository's debugging document. + +* Start from [[Hardware and Software Matrix]] to see which combinations are Reference, Target or Experimental. +* The repository's developer onboarding document describes the environment, the coding standards and how a change is landed. +* For the firmware side, [[risc-v-gsp-rm-debugger]] is the host-side workbench; the tool documentation is in the repository. + +'''Editorial policy for this wiki:''' account creation and editing are closed to prevent spam. The wiki is maintained from the project's tracked documentation by the project's publishing bot; corrections and additions are made through the repository. diff --git a/tools/site/pages/Documentation.wiki b/tools/site/pages/Documentation.wiki new file mode 100644 index 0000000..00d40bc --- /dev/null +++ b/tools/site/pages/Documentation.wiki @@ -0,0 +1,50 @@ +{{About message}} + +This is the index of the Open-IOV wiki. If you are new, read '''[[Project Status]]''' first, then '''[[System Overview]]'''. The wiki is a curated public view of the project's maintained documentation; each page names its canonical document in the [https://git.vgpu.io/open-iov repository]. + +== Start here == +* [[Project Status]] — what works today, what is in progress, what is not started +* [[Install and First Run]] — build, load, and a stock guest driver in about half an hour +* [[System Overview]] — the architecture in one page +* [[FAQ]] — common questions, including "why is nvidia-smi working but CUDA not?" + +== Architecture == +* [[System Overview]] — principle, layer map, data flows +* [[GSP and GSP-RM]] — the firmware interface the project emulates +* [[The Host Module (vgsp.ko)]] — virtual device, emulation core, memory model, forwarding +* [[The Guest Stack and CUDASW]] — what runs unmodified inside the guest +* [[The vGSP Execution Plane (vEP)]] — the execution and completion layer +* [[Introduction to GMMU]] — GPU address translation from first principles +* [[UVM in the Guest]] — unified memory, semaphores, page trees +* [[GMMU Multi-Tenant Protection]] — isolation design for multiple VMs and tenants +* [[Physical GPU Backend and Guest Wiring]] — how guest work reaches real hardware +* [[Guest Driver Lifecycle: A Field Guide]] — boot to CUDA, with real control IDs and log signatures + +== CUDA == +* [[CUDA Userspace Driver]] — the libcuda.so deep dive +* [[The Execution Frontier]] — the GR compute-launch chain and its current wall + +== Firmware interoperability == +* [[GSP 570.144W Firmware Analysis]] — how the 28.5 MB image was decompiled and mapped +* [[Address Reference]] — firmware-side address tables +* [[risc-v-gsp-rm-debugger]] — the firmware runtime workbench (hooks, watchpoints, sessions) +* Historical protocol analyses, kept for the record: [[RPC Message Format]] · [[BAR Emulation Specification]] · [[WPR Management]] · [[Migration Protocol]] · [[GSP RPC Emulation]] · [[Error Codes]] · [[vGPU-IO Integration Guide]] + +== Portability and ecosystem == +* [[Hardware and Software Matrix]] — Reference / Target / Experimental, honestly labelled +* [[HAAEEP and Collaboration]] — the agent-edge use case, collaboration and licensing models + +== Reference == +* [[Glossary]] +* [[FAQ]] +* [[Error Codes]] — historical naming, superseded by the wire status values + +== History == +This wiki previously hosted the OpenMdev / LibVF.IO project documentation (2021–2023). The pages below are archived for reference; they describe earlier projects and architectures, not Open-IOV. + +* [[Introduction]] · [[Virtualization Fundamentals]] · [[Virtual I/O Internals]] · [[GPU Driver Internals]] · [[GPU Firmware]] · [[GPU Support]] · [[CPU Support]] · [[Hypervisor Support]] · [[Merged Drivers]] · [[OpenRM]] · [[AMDGPU]] · [[Intel]] · [[Mdev-GPU]] · [[GVM]] · [[Hyperborea]] · [[LIME Is Mediated Emulation]] · [[LibVF.IO Setup Guide]] · [[Looking Glass KVMFR]] · [[VGPU Unlock]] · [[GPU Software Bill Of Materials (SBOM)]] + +== Meta == +* [[Open-IOV:About|About Open-IOV]] +* [[Community]] +* Wiki architecture pages name their canonical source in the repository; when a page and its source disagree, the repository wins. diff --git a/tools/site/pages/Main-Page.wiki b/tools/site/pages/Main-Page.wiki new file mode 100644 index 0000000..fb08f81 --- /dev/null +++ b/tools/site/pages/Main-Page.wiki @@ -0,0 +1,78 @@ +{{About message}} + +__NOTOC__ +
+'''Open-IOV''' is an open-source virtualization layer for NVIDIA GPUs: it runs '''stock, unmodified NVIDIA drivers inside virtual machines''' — Linux and Windows — with CUDA on hardware you own, '''without proprietary vGPU licenses''', without patching the guest driver, the host driver, the hypervisor or the firmware. + +'''''Emulate the interface. Pass through the work. Never patch anyone.''''' + +The only new component is one host kernel module (vgsp.ko), which implements the interface the guest driver expects to talk to — the GPU System Processor and its resource-manager firmware — and arranges for the guest's work to run on real GPU hardware. + +'''[[Open-IOV:About|About Open-IOV]]''' · '''[[Community|Community]]''' · '''[[Documentation|Documentation]]''' +
+ +== Start here == +* '''[[Project Status]]''' — the honest, dated state of the project. +* '''[[Install and First Run]]''' — fresh host to a stock guest driver in about half an hour. +* '''[[System Overview]]''' — how Open-IOV works, in one page. +* '''[[Documentation]]''' — the full index of this wiki. +* '''[[FAQ]]''' — the questions we get asked most. + +== Project status (2026-10-12) == +{| class="wikitable" +! Area !! State +|- +| Emulated vGPU device (PCI, BARs, MSI-X, VFIO mdev) || Working +|- +| GSP boot emulation and GSP-RM message queues / RPC || Working +|- +| Stock guest driver probe, nvidia-smi (TU104) || Working +|- +| CUDA userspace init and the driver-API smoke (ALL OK, 64-byte payload round-trips) || Working +|- +| Guest CUDA kernel execution on real hardware || In progress — a forwarded launch reaches the engine queue; engine execution is the frontier +|- +| OpenGL / Vulkan, Windows guests, multi-tenancy, migration, performance || Not yet +|} + +The full story, with evidence and the current wall: [[Project Status]] and [[The Execution Frontier]]. + +== Deep dives == +* [[System Overview]] — the architecture before any subsystem +* [[GSP and GSP-RM]] — the firmware interface we emulate +* [[The vGSP Execution Plane (vEP)]] — how guest work becomes execution and completion +* [[The Host Module (vgsp.ko)]] — the module internals +* [[The Guest Stack and CUDASW]] — what runs unmodified in the guest +* [[CUDA Userspace Driver]] — the libcuda.so analysis +* [[Introduction to GMMU]] — GPU address translation from first principles +* [[UVM in the Guest]] — unified memory as a correctness oracle +* [[Physical GPU Backend and Guest Wiring]] — how work reaches real hardware +* [[The Execution Frontier]] — the leading edge, evidence-led +* [[Guest Driver Lifecycle: A Field Guide]] — boot to CUDA with real IDs and log signatures + +== Firmware interoperability == +* [[GSP 570.144W Firmware Analysis]] +* [[Address Reference]] +* [[RPC Message Format]] · [[BAR Emulation Specification]] · [[WPR Management]] · [[Migration Protocol]] · [[GSP RPC Emulation]] (historical, superseded) +* [[risc-v-gsp-rm-debugger]] — the firmware runtime workbench + +== Project and ecosystem == +* [[Hardware and Software Matrix]] — supported combinations, honestly labelled +* [[HAAEEP and Collaboration]] — the agent-edge use case and how to work with us +* [[FAQ]] · [[Glossary]] + +== Community == +* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] +* Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] + +== About Open-IOV == +Open-IOV runs unmodified NVIDIA driver stacks inside virtual machines with GPU compute on hardware you own — no proprietary vGPU license, and no patches to the guest driver, the host driver, the hypervisor or the firmware. The project adds one host kernel module (vgsp.ko) that implements the interface the guest driver expects to talk to — the GPU System Processor and its resource-manager firmware — and arranges for the guest's work to run on real GPU hardware. + +* '''Mission:''' make NVIDIA GPUs fully virtualizable, by anyone, for any hypervisor, without modifying NVIDIA software, firmware or hardware. +* '''Principles:''' no patches anywhere; honest status carried with dated evidence; an independent, self-contained IP block; durability by owning the interface rather than a snapshot of it. +* '''Licensing:''' all documentation on this site is [https://creativecommons.org/licenses/by/4.0/ CC-BY-4.0]; the project's code is BSD-3-Clause (GPL-2.0 for the kernel modules); NVIDIA software and firmware are used unmodified and are not redistributed. + +'''[[Open-IOV:About|Read more about Open-IOV →]]''' + +== About this wiki == +This wiki previously hosted documentation from the earlier project era (2021–2023). Those pages are retained for reference under [[Documentation|History]]; current documentation starts at [[Documentation]]. diff --git a/tools/site/pages/MediaWiki-Sidebar.wiki b/tools/site/pages/MediaWiki-Sidebar.wiki new file mode 100644 index 0000000..499f954 --- /dev/null +++ b/tools/site/pages/MediaWiki-Sidebar.wiki @@ -0,0 +1,31 @@ +* navigation +** mainpage|mainpage-description +** Project Status +** Documentation +** FAQ +** recentchanges-url|recentchanges +* Deep dives +** System Overview +** GSP and GSP-RM +** The vGSP Execution Plane (vEP) +** The Host Module (vgsp.ko) +** The Guest Stack and CUDASW +** CUDA Userspace Driver +** Introduction to GMMU +** UVM in the Guest +** Physical GPU Backend and Guest Wiring +** The Execution Frontier +* Project +** Open-IOV:About|About Open-IOV +** Install and First Run +** Hardware and Software Matrix +** HAAEEP and Collaboration +** risc-v-gsp-rm-debugger +** Glossary +* Community +** Community +** https://git.vgpu.io/open-iov|Source repository +** https://discord.gg/Rb9K9DYxKK|Discord +* SEARCH +* TOOLBOX +* LANGUAGES diff --git a/tools/site/pages/Open-IOV-About.wiki b/tools/site/pages/Open-IOV-About.wiki new file mode 100644 index 0000000..1084ae1 --- /dev/null +++ b/tools/site/pages/Open-IOV-About.wiki @@ -0,0 +1,29 @@ +{{About message}} + +'''Open-IOV''' is an open-source virtualization layer for NVIDIA GPUs. It runs '''stock, unmodified NVIDIA drivers inside virtual machines''' — Linux and Windows — with GPU compute (CUDA), and eventually 3D graphics and video, on hardware you already own: without a proprietary vGPU license, without patching the guest driver, the host driver, the hypervisor or the GPU firmware. + +== Mission == +Make NVIDIA GPUs fully virtualizable, by anyone, for any hypervisor, without modifying NVIDIA software, firmware or hardware. + +== How it works == +The only component the project adds is a host kernel module (vgsp.ko). It implements the interface the guest driver expects to talk to — the GPU System Processor (GSP) and its resource-manager firmware — and arranges for the guest's work to execute on real GPU hardware. The guiding sentence is: + +::'''''Emulate the interface. Pass through the work. Never patch anyone.''''' + +See [[System Overview]] for the architecture and [[Project Status]] for the honest current state. + +== Principles == +* '''No patches anywhere.''' Guest drivers, host drivers, firmware and hypervisors are all used unmodified; interoperability is the goal, not counterfeiting. +* '''Honest status.''' Claims carry dates and evidence; the project publishes what does not work as clearly as what does. +* '''Independent IP block.''' Open-IOV is self-contained so KVM, Xen, Argo/OpenXT, Qubes OS Air and others can carry it without forks. +* '''Durability by owning the interface.''' The protocol, not a snapshot of it, is reimplemented — so new driver versions, firmware and hardware can be carried forward. + +== Licensing == +'''All documentation on this site is licensed [https://creativecommons.org/licenses/by/4.0/ CC-BY-4.0]''' — the statement carried at the top of every page. It may be reused with attribution, or used as inspiration for new documentation, including by GPU vendors for public commercial distribution as developer documentation. + +The project's source code is licensed separately: '''BSD 3-Clause''' for everything reusable (userspace libraries, tools, scripts, configuration) and '''GPL-2.0''' for the kernel modules that must legally link against GPL-only kernel exports (VFIO, mdev, IOMMU); per-file SPDX identifiers govern. NVIDIA's software and firmware are used unmodified and are not redistributed. See the repository's LICENSE and docs/09-reference/legal-and-licensing.md for the full statement. + +== Community == +* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] +* Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] +* See [[Community]] and [[HAAEEP and Collaboration]]. diff --git a/tools/site/pages/Template-About-message.wiki b/tools/site/pages/Template-About-message.wiki new file mode 100644 index 0000000..893e3b1 --- /dev/null +++ b/tools/site/pages/Template-About-message.wiki @@ -0,0 +1,11 @@ +
+''An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.'' + +''This [https://creativecommons.org/licenses/by/4.0/ CC-BY-4.0] licensed content can either be used with attribution, or used as inspiration for new documentation, created by GPU vendors for public commercial distribution as developer documentation.'' + +''Where possible, this documentation will clearly label dates and versions of observed-but-not-guaranteed behaviour vs. vendor-documented stable interfaces/behaviour with guarantees of forward or backward compatibility.'' +
+ +== Usage == +Every content page on this wiki carries this message: {{About message}} + diff --git a/tools/site/pages/Template-Historical.wiki b/tools/site/pages/Template-Historical.wiki new file mode 100644 index 0000000..8473b47 --- /dev/null +++ b/tools/site/pages/Template-Historical.wiki @@ -0,0 +1,7 @@ +
+'''Historical page.''' This page documents an earlier project or architecture (the OpenMdev / LibVF.IO era, 2021–2023). It is retained for reference and is not part of the current Open-IOV stack. Current documentation starts at [[Documentation]]. +
[[Category:History]] + +== Usage == +Place at the top of archived pages: {{Historical}} + diff --git a/tools/site/pages/Template-Superseded.wiki b/tools/site/pages/Template-Superseded.wiki new file mode 100644 index 0000000..2fb64db --- /dev/null +++ b/tools/site/pages/Template-Superseded.wiki @@ -0,0 +1,7 @@ +
+'''Superseded document.''' This page records an earlier analysis that the current implementation no longer follows. It is kept for the record; current documentation is linked at the top of the page or at [[Documentation]]. +
[[Category:Superseded]] + +== Usage == +Place at the top of superseded analysis pages: {{Superseded}} + -- cgit v1.2.3