summaryrefslogtreecommitdiffstats
path: root/.gitignore
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 /.gitignore
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 '.gitignore')
-rw-r--r--.gitignore117
1 files changed, 117 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..42849ec
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,117 @@
+# ============================================================================
+# Open-IOV .gitignore
+#
+# Goals:
+# - No large binary objects in git (firmware blobs, VM images, Ghidra DBs)
+# - No build artifacts
+# - No vendor trees (NVIDIA OpenRM is pulled + patched by install.sh)
+# - No local QEMU-wrapper stacks (/, guest communication daemon) - the repo is
+# hypervisor-management neutral (works with libvirt, , raw QEMU, ...)
+# ============================================================================
+
+# ----------------------------------------------------------------------------
+# Kernel / kbuild artifacts
+# ----------------------------------------------------------------------------
+*.o
+*.o.d
+.*.o.d
+*.ko
+*.mod
+*.mod.c
+*.mod.o
+Module.symvers
+modules.order
+.*.cmd
+.tmp_versions/
+*.order
+*.symvers
+
+# ----------------------------------------------------------------------------
+# Userspace build artifacts
+# ----------------------------------------------------------------------------
+*.so
+*.so.*
+*.a
+*.pyc
+__pycache__/
+userspace/lib/libiov.so*
+userspace/lib/libvgpu.so*
+userspace/examples/example_vgpu
+userspace/tests/*_test
+
+# ----------------------------------------------------------------------------
+# NVIDIA open-gpu-kernel-modules (vendor tree)
+# Cloned at a pinned tag and patched by install.sh - see patches/nvidia/
+# ----------------------------------------------------------------------------
+/nvidia-open-gpu-kernel-modules/
+
+# NVIDIA open-gpu-kernel-modules @ 570.144 (local checkout of the open kernel modules
+# driver's exact wire protocol - used by kernel/gsp_rm_emulation.c)
+/nvidia-570.144-reference/
+
+# rmq build artifact (source stays)
+tools/rmq/rmq
+
+# ----------------------------------------------------------------------------
+# GSP firmware blobs and decompiled GSP output
+# (large, license-restricted NVIDIA binaries; analysis scripts/docs stay)
+# ----------------------------------------------------------------------------
+firmware/**/*.bin
+firmware/**/decompiled/
+firmware/**/decompiled_*.c
+
+# ----------------------------------------------------------------------------
+# Ghidra project databases (large binary DBs; analysis scripts stay tracked)
+# ----------------------------------------------------------------------------
+tools/ghidra/**/*.rep/
+tools/ghidra/**/*.gpr
+tools/ghidra/**/*.lock
+tools/ghidra/**/*.lock~
+
+# ----------------------------------------------------------------------------
+# VM images and disk artifacts (large binaries)
+# ----------------------------------------------------------------------------
+*.iso
+*.img
+*.qcow2
+*.qcow
+*.vmdk
+*.vdi
+*.raw
+
+# Compiled helper binaries (build from adjacent .c source instead)
+tools/debug/nv2080_ctrl
+
+# Prebuilt management tool binaries (not rebuilt from this tree)
+/userspace/bin/
+
+# ----------------------------------------------------------------------------
+# Local QEMU-wrapper / VM-management layer (NOT part of the reproducible core)
+# Bring your own wrapper: libvirt, /, plain qemu, etc.
+# ----------------------------------------------------------------------------
+/GVM-guest/
+/libvf.io/
+/scripts/vgpu_vm.py
+/scripts/qemu_control.py
+/scripts/qemu_harness.sh
+# Local git-push helper (manages per-machine ssh-agent env; not portable)
+/scripts/git-push-vgpu.sh
+
+# ----------------------------------------------------------------------------
+# Misc
+# ----------------------------------------------------------------------------
+*.log
+*.tmp
+.DS_Store
+/core
+vgcore.*
+userspace/tests/test_vgpu_userspace
+
+# Maintainer notes: study index (never commit)
+ARCHAEOLOGY.md
+
+# generated at runtime by tools/guest-diag/vmcycle.sh
+tools/guest-diag/launch_qemu_rootport.run.sh
+
+# Vendor SDK headers kept locally as study material (not published)
+userspace/sdks/