summaryrefslogtreecommitdiffstats
path: root/patches/nvidia/README.md
diff options
context:
space:
mode:
authorOpen-IOV <dev@open-iov.org>2026-09-23 05:44:08 -0400
committerOpen-IOV <dev@open-iov.org>2026-09-23 05:46:43 -0400
commit2302fc09080bad51c73f293294e19fd4db464eb0 (patch)
treec722d186347fdef5a34131e9e143b1549b1daf8e /patches/nvidia/README.md
downloadopen-iov-2302fc09080bad51c73f293294e19fd4db464eb0.tar.gz
open-iov-2302fc09080bad51c73f293294e19fd4db464eb0.zip
Open-IOV: initial public release
Open-IOV virtualizes NVIDIA GPUs so that unmodified guest drivers run with real GPU functionality - CUDA first, 3D and video to follow - on unmodified hosts, without a proprietary vGPU license and without patching any driver, firmware or hypervisor. Core principle: emulate the interface, pass through the work. kernel/ open-iov-vfio.ko - host VFIO mdev driver: virtual GPU device (PCI config space, BAR shadows, MSI-X), GSP boot emulation, GSP-RM message-queue/RPC emulation, memory model (GPU-VA to guest-PA discovery) and the semaphore-completion service that advances guest UVM progress. userspace/ libiov.so management API and examples. tools/ guest diagnostics, firmware analysis wrappers, RM probes. scripts/ stack manager, VM harness, build/load/test automation. config/ hardware/version profiles (the portability surface). docs/ documentation tree - start at docs/README.md. wiki/ long-form firmware and protocol deep dives. Status: initialization works end to end for a stock 570.144 Linux guest on Turing (TU104): driver probe, nvidia-smi, the full GSP-RM control battery, object creation and the early CUDA/UVM start-up path. GPU work forwarding - the step that makes CUDA kernels execute on real hardware - is the active work item; see docs/04-implementation/01-known-knowns-and-unknowns.md. License: BSD-3-Clause for the project; GPL-2.0 for kernel modules that link GPL-only kernel interfaces. See LICENSE and docs/09-reference/legal-and-licensing.md.
Diffstat (limited to 'patches/nvidia/README.md')
-rw-r--r--patches/nvidia/README.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/nvidia/README.md b/patches/nvidia/README.md
new file mode 100644
index 0000000..9c74f75
--- /dev/null
+++ b/patches/nvidia/README.md
@@ -0,0 +1,45 @@
+# NVIDIA open-gpu-kernel-modules Patches
+
+Open-IOV does **not** vendor the NVIDIA OpenRM source tree. Instead, the
+installer clones upstream at a pinned tag and applies this patch series.
+
+## Pinned upstream
+
+- Repository: <https://github.com/NVIDIA/open-gpu-kernel-modules.git>
+- Tag: `610.57.04`
+- Pristine-tree SHA256 of the delta base: tag `610.57.04`
+
+## Applying
+
+```bash
+git clone --depth 1 --branch 610.57.04 \
+ https://github.com/NVIDIA/open-gpu-kernel-modules.git
+cd open-gpu-kernel-modules
+git apply /path/to/open-iov/patches/nvidia/*.patch
+```
+
+(`install.sh` does this automatically.)
+
+## Regenerating the series
+
+If you modify the NVIDIA tree, regenerate the patches with:
+
+```bash
+cd nvidia-open-gpu-kernel-modules
+git format-patch 610.57.04..HEAD -o ../patches/nvidia/
+```
+
+## What the series does
+
+`0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch`:
+
+- Adds the vGPU VFIO interface headers (`nv-vgpu-vfio-interface.h`,
+ `nv-vgpu-vfio-interface-nvidia.h`) that `open-iov-vfio.ko` and
+ `nvidia.ko` share.
+- Exports the vGPU VFIO symbols from `nvidia.ko`
+ (`nvidia_vgpu_vfio_probe/remove`, `nvidia_vgpu_vfio_get_ops/set_ops`,
+ `nv_vgpu_mdev_register_parent/unregister_parent`, ...).
+- Reports version `570.144` to match the GSP firmware the guest driver
+ stack is validated against.
+- Build fixes for kernel 6.8 out-of-tree builds and the
+ `Module.symvers.open-iov` reference list.