Difference between revisions of "Documentation"

From Open-IOV
Jump to navigation Jump to search
m (Fix repository links to the cgit tree/repo URLs)
 
(74 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{About message}}


===Abstract===
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.git/ repository].
[[Introductory Concepts & Definitions]]


[[Virtualization Fundamentals]]
== 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?"


[[Mediated Device Internals]]
== 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


[[Merged Drivers]]
== CUDA ==
* [[CUDA Userspace Driver]] — the <code>libcuda.so</code> deep dive
* [[The Execution Frontier]] — the GR compute-launch chain and its current wall


=== Design Documents ===
== Firmware and reverse engineering ==
[https://projectacrn.github.io/latest/developer-guides/hld/hv-memmgt.html Memory Management High Level Design (ARCN)]
* [[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]]


===Projects===
== Portability and ecosystem ==
[https://openmdev.io/index.php/LibVF.IO LibVF.IO]
* [[Hardware and Software Matrix]] — Reference / Target / Experimental, honestly labelled
* [[HAAEEP and Collaboration]] — the agent-edge use case, collaboration and licensing models


[https://openmdev.io/index.php/Looking_Glass_KVMFR Looking Glass]
== Reference ==
* [[Glossary]]
* [[FAQ]]
* [[Error Codes]] — historical naming, superseded by the wire status values


[https://openxt.atlassian.net/wiki/spaces/OD/pages/10747915/What+is+OpenXT OpenXT]
== 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.


[https://gitlab.com/vglass OpenXT: vGlass]
* [[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)]]


[https://github.com/OpenXT/surfman OpenXT: Surfman (legacy DRM)]
== Meta ==
 
* [[Open-IOV:About|About Open-IOV]]
[https://xenproject.org/help/documentation/ Xen Project]
* [[Community]]
 
* Wiki architecture pages name their canonical source in the repository; when a page and its source disagree, the repository wins.
[https://www.qubes-os.org/doc/ Qubes OS]
 
[https://projectacrn.github.io/2.1/tutorials/using_celadon_as_uos.html Intel Celadon]
 
[https://openmdev.io/index.php/VGPU_Unlock vGPU_Unlock]
===Hardware Support===
[https://openmdev.io/index.php/GPU_Support GPU Support]
 
[https://openmdev.io/index.php/CPU_Support CPU Support]
 
=== Software Support ===
[https://openmdev.io/index.php/Hypervisor_Support Hypervisor Support]
 
=== API Documentation ===
 
==== Kernel APIs ====
[https://elixir.bootlin.com/linux/latest/source/Documentation/driver-api/vfio.rst VFIO] - [https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/vfio.h vfio.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] - [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 Kernel.org Driver Core Documentation]
 
==== Driver APIs ====
[https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html i915 Driver API]
 
[https://projectacrn.github.io/2.1/api/GVT-g_api.html Intel GVT-g APIs]
 
[https://nouveau.freedesktop.org/Development.html Nouveau Tools & APIs]
 
[https://openmdev.io/index.php/OpenRM OpenRM Driver API]
 
[https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html AMDGPU Driver API]
 
==== Virtualization APIs ====
[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]
=== Communities & Mailing Lists ===
[https://discord.gg/Rb9K9DYxKK LibVF.IO 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]

Latest revision as of 04:40, 12 October 2026

An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.

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

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 interoperability

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.