Difference between revisions of "Documentation"

From Open-IOV
Jump to navigation Jump to search
m (WikiBot moved page Articles to Documentation without leaving a redirect: New information architecture: the article index becomes the Documentation index)
m (Rewrite index for the 2026 information architecture)
Line 1: Line 1:
This page indexes the articles contained within Open-IOV.
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].


If you're new to GPU Virtualization start by reading the '''[[Introduction]]''' article.
== Start here ==
=== Start Here ===
* [[Project Status]] — what works today, what is in progress, what is not started
[[Introduction]]
* [[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?"


[https://open-iov.org/index.php/Open-IOV:About About Open-IOV (CC-BY-4.0)]
== 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


===Abstract===
== CUDA ==
[[Introductory Concepts & Definitions|Glossary]]
* [[CUDA Userspace Driver]] — the <code>libcuda.so</code> deep dive
* [[The Execution Frontier]] — the GR compute-launch chain and its current wall


[[Virtualization Fundamentals]]
== Firmware and reverse engineering ==
* [[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]]


[[Merged Drivers]]
== Portability and ecosystem ==
* [[Hardware and Software Matrix]] — Reference / Target / Experimental, honestly labelled
* [[HAAEEP and Collaboration]] — the agent-edge use case, collaboration and licensing models


=== Design Documents ===
== Reference ==
[[Virtual IO Internals|Virtual I/O Internals]]
* [[Glossary]]
* [[FAQ]]
* [[Error Codes]] — historical naming, superseded by the wire status values


[[GPU Driver Internals]]
== 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 to GMMU]]
* [[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)]]


[[The vGSP Execution Plane (vEP)]]
== Meta ==
 
* [[Open-IOV:About|About Open-IOV]]
[[GMMU Multi-Tenant Protection]]
* [[Community]]
 
* Wiki architecture pages name their canonical source in the repository; when a page and its source disagree, the repository wins.
[[Migration Protocol]]
 
==== Firmware & Protocols ====
[[GPU Firmware]]
 
[[GSP 570.144W Firmware Analysis]]
 
[[Address Reference]]
 
[[RPC Message Format]]
 
[[BAR Emulation Specification]]
 
[[WPR Management]]
 
[[GSP RPC Emulation]]
 
[[Error Codes]]
=== Driver Integration Documents ===
[https://open-iov.org/index.php/OpenRM Nvidia]
 
[[Intel SR-IOV APIs|Intel]]
 
[https://open-iov.org/index.php/AMDGPU AMD]
 
[[CUDA Userspace Driver]]
 
[[vGPU-IO Integration Guide]]
 
===Projects===
[https://open-iov.org/index.php/LIME_Is_Mediated_Emulation LIME Is Mediated Emulation]
 
[https://open-iov.org/index.php/Looking_Glass_KVMFR Looking Glass]
 
[https://openxt.atlassian.net/wiki/spaces/OD/pages/10747915/What+is+OpenXT OpenXT]
 
[https://gitlab.com/vglass OpenXT: vGlass]
 
[https://github.com/OpenXT/surfman OpenXT: Surfman (legacy DRM)]
 
[https://www.bromium.com/opensource/ Bromium/uXen]
 
[https://xenproject.org/help/documentation/ Xen Project]
 
[https://www.qubes-os.org/doc/ Qubes OS]
 
[https://projectacrn.github.io/2.1/tutorials/using_celadon_as_uos.html Intel Celadon]
 
[https://open-iov.org/index.php/VGPU_Unlock vGPU_Unlock]
=== Device Support===
[[GPU Support]]
 
[[CPU Support]]
 
=== Software Support ===
[https://open-iov.org/index.php/Hypervisor_Support Hypervisor Support]
 
[[GPU Software Bill Of Materials (SBOM)]]
 
=== API Documentation ===
 
==== Kernel APIs ====
[https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api Kernel.org Driver Core Documentation]
 
[https://docs.microsoft.com/en-us/windows-hardware/drivers/display/iommu-based-gpu-isolation NT Kernel (Windows) IOMMU-based GPU Isolation]
 
[https://elixir.bootlin.com/linux/latest/source/Documentation/driver-api/vfio.rst VFIO] - [https://github.com/torvalds/linux/blob/master/include/uapi/linux/vfio.h vfio.h] - [https://elixir.bootlin.com/linux/latest/source/include/linux/mdev.h mdev.h]
 
[https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/vfio-mediated-device.rst?h=driver-core-next&id=7de3697e9cbd4bd3d62bafa249d57990e1b8f294 VFIO Mediated Device]
==== Driver APIs ====
[https://projectacrn.github.io/2.1/api/GVT-g_api.html i915 GVT-g API]
 
[https://nouveau.freedesktop.org/Development.html Nouveau Tools & API]
==== Sample Code ====
GPLv2 sources mirrored from [https://elixir.bootlin.com/linux/latest/source/samples/vfio-mdev/ elixir.bootlin.com] with [https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/Makefile simple makefile changes].
 
[https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/mtty.c mtty.c] - [https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/mdpy.c mdpy.c] - [https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/mdpy-fb.c mdpy-fb.c] - [https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/mdpy-defs.h mdpy-defs.h] - [https://github.com/OpenMdev/VFIO-Mdev_Samples/blob/master/mbochs.c mbochs.c]
 
==== Virtualization APIs ====
[https://open-iov.org/index.php/Mdev-GPU#Mdev-CLI GVM/Mdev-CLI API]
 
[https://qemu-project.gitlab.io/qemu/interop/qemu-qmp-ref.html QEMU Machine Protocol (QMP) Reference Manual]
 
[https://projectacrn.github.io/2.1/developer-guides/hld/ivshmem-hld.html Inter-VM Shared Memory (IVSHMEM)]
===User Guides===
[https://arccompute.com/blog/libvfio-commodity-gpu-multiplexing/ LibVF.IO Setup Guide]
 
[https://looking-glass.io/docs/stable/ Looking Glass Quickstart Guide]
 
[https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide Intel GVT-g Setup Guide]
 
[https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization/tree/master/docs AMD GPU-IOV Module Docs]
 
[https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF PCI passthrough via OVMF]
 
[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/index RedHat Virtualization Guide]
 
=== Developer Guides ===
[https://rayanfam.com/tags/hypervisor/ Hypervisor From Scratch]
 
[https://lwn.net/Kernel/LDD3/ Linux Device Drivers (3rd Edition)]
 
[https://dri.freedesktop.org/docs/drm/gpu/ GPU Driver Developer's Guide]
 
[https://dri.freedesktop.org/docs/drm/PCI/pci.html# How To Write PCI Drivers]
 
[https://doc.dpdk.org/guides-16.04/prog_guide/ivshmem_lib.html Data Plane Development Kit: IVSHMEM Programming Guide]
 
=== Specifications ===
[https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/tlfs Hyper-V Hypervisor Top Level Functional Specification (TLFS)]
 
=== Communities & Mailing Lists ===
[https://discord.gg/Rb9K9DYxKK Open-IOV Discord]
 
[https://lists.freedesktop.org/mailman/listinfo/intel-gfx Intel-gfx Mailing List]
 
[https://lists.freedesktop.org/mailman/listinfo/nouveau Nouveau Mailing List]
 
[https://lists.freedesktop.org/mailman/listinfo/amd-gfx AMD-gfx Mailing List]
 
[https://listman.redhat.com/mailman/listinfo/vfio-users VFIO-users Mailing List]
 
[https://forum.level1techs.com/c/software/vfio/132 <nowiki>Level1Techs Forum [VFIO Topic]</nowiki>]
 
[https://old.reddit.com/r/VFIO/ VFIO Subreddit]

Revision as of 04:22, 12 October 2026

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 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

CUDA

Firmware and reverse engineering

Portability and ecosystem

Reference

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.

Meta

  • About Open-IOV
  • Community
  • Wiki architecture pages name their canonical source in the repository; when a page and its source disagree, the repository wins.