summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--README.md1
-rw-r--r--SBOM.md246
-rw-r--r--docs/02-getting-started/01-install-and-first-run.md2
-rw-r--r--docs/07-developers/onboarding-and-standards.md2
-rw-r--r--docs/09-reference/legal-and-licensing.md4
-rwxr-xr-xinstall.sh2
-rw-r--r--kernel/main.c4
-rw-r--r--sbom/open-iov-0.1.0.cdx.json625
-rwxr-xr-xscripts/launch_qemu_direct.sh2
-rwxr-xr-xscripts/stack_manager.sh4
-rw-r--r--tools/guest-diag/README.md4
-rw-r--r--userspace/cuda/docs/04-virtualization-and-emulation.md2
-rw-r--r--wiki/GPU_SBOM.md282
-rw-r--r--wiki/open-iov.org/index.php/GPU_Software_Bill_Of_Materials_(SBOM).html8
-rw-r--r--wiki/open-iov.org/index.php/LIME_Is_Mediated_Emulation.html2
-rw-r--r--wiki/open-iov.org/index.php/Mdev-GPU.html12
-rw-r--r--wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html8
-rw-r--r--wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html2
-rw-r--r--wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html8
-rw-r--r--wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&action=edit.html2
-rw-r--r--wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786.html2
-rw-r--r--wiki/open-iov.org/index.php?title=Mdev-GPU&action=edit.html12
-rw-r--r--wiki/open-iov.org/index.php?title=Mdev-GPU&action=history.html2
-rw-r--r--wiki/open-iov.org/index.php?title=Mdev-GPU&oldid=23740.html12
25 files changed, 944 insertions, 310 deletions
diff --git a/.gitignore b/.gitignore
index 9cb3517..d15499f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -88,6 +88,10 @@ tools/ghidra/**/*.lock~
*.vdi
*.raw
+# Local VM deployment resources (autoinstall seeds; not part of the
+# reproducible core)
+/qemu-resources/
+
# Compiled helper binaries (build from adjacent .c source instead)
tools/debug/nv2080_ctrl
diff --git a/README.md b/README.md
index 8efbe25..06cfffa 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,7 @@ patching any driver or firmware, and without forking any hypervisor.
| `firmware/` | versioned GSP firmware analysis artifacts (images fetched by `install.sh`) |
| `docs/` | **the documentation tree** (entry point: `docs/README.md`) |
| `wiki/` | long-form firmware/protocol deep dives |
+| `SBOM.md`, `sbom/` | software bill of materials: human-readable page + machine-readable CycloneDX 1.6 |
Not tracked in git by design: GSP firmware blobs, decompiled firmware output,
local analysis material, VM disks/ISOs and Ghidra databases.
diff --git a/SBOM.md b/SBOM.md
new file mode 100644
index 0000000..5182376
--- /dev/null
+++ b/SBOM.md
@@ -0,0 +1,246 @@
+# Open-IOV — Software Bill of Materials (SBOM)
+
+> **Format:** CycloneDX 1.6 (machine-readable: [`sbom/open-iov-0.1.0.cdx.json`](sbom/open-iov-0.1.0.cdx.json)) +
+> this human-readable page. The document follows the NTIA *Minimum Elements for
+> a Software Bill of Materials* and is suitable for commercial review,
+> procurement, vulnerability management and regulatory submission (see §9).
+> SPDX 2.3 can be produced from the CycloneDX document with standard tooling on
+> request.
+
+| Field | Value |
+|---|---|
+| **SBOM document name** | Open-IOV SBOM |
+| **SBOM version** | 1 |
+| **SBOM serial (URN)** | `urn:uuid:e626c5a1-9697-4546-bb2b-5b4feb58e922` |
+| **Created (UTC)** | 2026-10-02T06:47:39Z |
+| **Created by** | The Open-IOV Project (automated inventory audit of the tracked tree) |
+| **Primary component** | Open-IOV virtual GSP/vGPU stack |
+| **Primary version** | `0.1.0` (`OPEN_IOV_VFIO_VERSION` in `kernel/include/nvidia-vgpu-vfio.h`) |
+| **Primary license** | BSD-3-Clause (kernel side: GPL-2.0; see §8) |
+| **Repository** | <https://git.vgpu.io/open-iov.git> |
+| **Scope** | All files tracked in the repository, plus the external components required to build, run and support it |
+| **Distribution** | Firmware images, GPU drivers, hypervisors and guest OS images are **not distributed** in this repository (see §2 and §8) |
+
+---
+
+## 1. Primary component
+
+**Open-IOV** is an open-source virtualization layer for NVIDIA GPUs. It lets an
+unmodified NVIDIA guest driver run in a VM by emulating the GPU System
+Processor (GSP) and its resource-manager firmware interface (GSP-RM) in a host
+kernel module, and by arranging for guest work to execute on the physical GPU.
+
+* Supplier: The Open-IOV Project
+* Version: `0.1.0` — defined by `OPEN_IOV_VFIO_VERSION` in
+ `kernel/include/nvidia-vgpu-vfio.h`
+* Unique ID: `pkg:generic/open-iov@0.1.0`
+* License: BSD-3-Clause (see `LICENSE`)
+* Source revision: audited from the parent of the commit that adds this
+ document; the repository history is the authoritative record (`git log`)
+
+## 2. Scope, conventions and exclusions
+
+* **Included:** every first-party component and every third-party file tracked
+ in the repository (including vendored sources, generated analysis data and
+ prebuilt tools that are tracked).
+* **Documented but not distributed:** external build/run dependencies (§6) —
+ NVIDIA drivers and GSP firmware, the Linux kernel, QEMU/KVM, GNU toolchain,
+ Python, Ghidra, CUDA toolkit, guest operating systems, and so on.
+* **Third-party media in the historical wiki archive** (§5): the `wiki/` tree
+ is an archived scrape of the project's earlier public wiki. It includes
+ diagrams and logos whose provenance is third-party; they are historical
+ documentation, not part of the runnable software. Their licenses are
+ reported as `NOASSERTION` unless a per-file license exists.
+* **Not tracked, not shipped:** `firmware/**/*.bin`, decompiled output,
+ local source checkouts, VM disk images, SDK headers and local notes are
+ gitignored and are not part of this SBOM's software payload.
+* Components are identified with Package URLs (`pkg:…`) where an ecosystem
+ identifier exists; tracked files carry SHA-256 hashes in the machine SBOM.
+
+## 3. First-party components
+
+All first-party components are © 2026 The Open-IOV Project and licensed
+**BSD-3-Clause** unless the per-file `SPDX-License-Identifier` states otherwise.
+The kernel module is **GPL-2.0** (see §8).
+
+| Component | Version | License | Location | Unique ID | Contents / purpose |
+|---|---|---|---|---|---|
+| `open-iov-vfio` kernel module | 0.1.0 | GPL-2.0 | `kernel/**` | `pkg:generic/open-iov-vfio@0.1.0` | Host VFIO mdev driver + emulated GSP/GSP-RM, semaphore service, memory model, physical-GPU backend, BAR/MSI-X emulation, mdev/VFIO lifecycle |
+| `libiov` userspace library | 0.1.0 | BSD-3-Clause | `userspace/lib/**`, `userspace/include/libvgpu.h` | `pkg:generic/libiov@0.1.0` | Management library (`libiov.so`) + `libvgpu.so` compatibility link, RPC emulation helpers, pkg-config metadata |
+| `example_vgpu` example | 0.1.0 | BSD-3-Clause | `userspace/examples/**` | `pkg:generic/open-iov-example@0.1.0` | Minimal library usage example and build files |
+| Userspace tests | 0.1.0 | BSD-3-Clause | `userspace/tests/**` | `pkg:generic/open-iov-userspace-tests@0.1.0` | Userspace VF management tests |
+| Kernel tests | 0.1.0 | GPL-2.0 | `kernel/tests/**` | `pkg:generic/open-iov-kernel-tests@0.1.0` | In-kernel unit/smoke tests |
+| Guest diagnostics suite | 0.1.0 | BSD-3-Clause | `tools/guest-diag/**` | `pkg:generic/open-iov-guest-diag@0.1.0` | VM cycle harness, kprobes, pin scanners, CUDA smoke test wrappers, QEMU launch snapshots (internal tooling; may invoke an optional external VM manager) |
+| CUDA A/B harness | 0.1.0 | BSD-3-Clause | `tools/cuda-ab/**` | `pkg:generic/open-iov-cuda-ab@0.1.0` | Host-vs-guest `vector_add` comparison harness (`vector_add.cu`, `ab.sh`, tracked prebuilt `run/vector_add`) |
+| RM queue / WPR tools | 0.1.0 | BSD-3-Clause | `tools/rmq/**` | `pkg:generic/open-iov-rmq@0.1.0` | RM queue probes, WPR2 reset helper (+ companion kernel module), tracked prebuilt `wpr2_reset` |
+| Ghidra analysis tooling | 0.1.0 | BSD-3-Clause | `tools/ghidra/**` | `pkg:generic/open-iov-ghidra-tools@0.1.0` | Scripts for firmware analysis under Ghidra (Ghidra itself is external, §6) |
+| Guest test agent | 0.1.0 | BSD-3-Clause | `tools/guest_agent/**` | `pkg:generic/open-iov-guest-agent@0.1.0` | Optional guest-side test agent (may use PyTorch) |
+| VM/module/debug tools | 0.1.0 | BSD-3-Clause | `tools/{vm,module_ops,debug,test}/**` | `pkg:generic/open-iov-tools-misc@0.1.0` | VM harness, module operations, debug and test helpers |
+| GSP firmware analysis artifacts | 570.144W | BSD-3-Clause | `firmware/57X-GSP/570.144/**` | `pkg:generic/open-iov-gsp-analysis@570.144W` | Python analysis scripts, function/prologue maps, RPC handler maps, reports — the project's own work product; no NVIDIA binaries |
+| CUDA userspace driver analysis | 570.144 | BSD-3-Clause | `userspace/cuda/**` | `pkg:generic/open-iov-cuda-analysis@570.144` | Documentation, decompilation tooling wrappers, Ghidra scripts and annotation tables for `libcuda.so.570.144` |
+| Automation & build scripts | 0.1.0 | BSD-3-Clause | `scripts/**`, `install.sh`, `validate.sh`, `Makefile` | `pkg:generic/open-iov-scripts@0.1.0` | Install, build, VM harness, stack management and validation automation |
+| Portability configuration | 0.1.0 | BSD-3-Clause | `config/**` | `pkg:generic/open-iov-config@0.1.0` | Hardware (Turing/Ampere/Blackwell) and driver-version (550/560/570/580) matrices |
+| Documentation | 0.1.0 | BSD-3-Clause | `docs/**`, `README.md`, `STATE-CURRENT.md` | `pkg:generic/open-iov-docs@0.1.0` | Architecture, implementation, operations, portability, ecosystem and reference material |
+| Project wiki archive | 2023 (imported) | BSD-3-Clause (third-party media excepted, §5) | `wiki/**` | `pkg:generic/open-iov-wiki-archive@2023` | Markdown wiki pages + archived HTML snapshot of the earlier project wiki |
+| CI configuration | 0.1.0 | BSD-3-Clause | `.github/workflows/ci.yml` | `pkg:generic/open-iov-ci@0.1.0` | Build/test matrix (kernels 6.1/6.6/6.8, GCC 11/12/13) |
+
+### Tracked build artifacts (first-party)
+
+These prebuilt binaries are tracked in the tree. Their sources are present and
+the hashes allow integrity verification.
+
+| File | SHA-256 | Built from | Toolchain |
+|---|---|---|---|
+| `tools/cuda-ab/run/vector_add` | `8edc28a8814f108a85b794ca4e636138de03f45f706cb96bd008f420a87e8036` | `tools/cuda-ab/vector_add.cu` | NVIDIA CUDA toolkit (external, §6); links libc only |
+| `tools/rmq/wpr2_reset` | `cae6537a41f0e548349617a7c44f411dc5c38f16000ce1879ba49814e82c2361` | `tools/rmq/wpr2_reset.c` | GCC 13 / glibc |
+
+## 4. Bundled third-party components
+
+Third-party files tracked in the repository, with upstream project and license.
+Hashes are SHA-256.
+
+| Component | Upstream | License | Files | SHA-256 |
+|---|---|---|---|---|
+| tomlc99 (TOML parser) | <https://github.com/cktan/tomlc99> | MIT | `userspace/extern/src/toml.c`, `userspace/extern/inc/toml.h` | `ca70a545ce442d878587bb2767de8c7e6219b43ba832fa87c4b8a8c4f4f8221f`, `0c56ba78add80e49073b12de039835718c29410669d7a526e65bc8212e1dc135` |
+| cargs (argument parser) | <https://github.com/likle/cargs> | MIT | `userspace/extern/src/cargs.c`, `userspace/extern/inc/cargs.h` | `d6c88f89b1d948f4b221c54103f17f6575bd580fcaffb0de3dfbceb2dd6136ab`, `93d3e1cb40d6eb646b7f50051ee9ad3f664ffe21d103164f98e89e9775bb91cb` |
+| NVIDIA vGPU/VFIO interface headers | NVIDIA (public headers) | MIT | `kernel/include/nv-hypervisor.h` | `733409c43ab65708bf5563b76e4dea9d1dfbe1d5cfa0d846fbba511a1186f932` |
+| NVIDIA vGPU/VFIO interface headers | NVIDIA (public headers) | MIT | `kernel/include/nv-vgpu-vfio-interface.h` | `83908a89a7f6df2631d24bb2518bbb5643c4f1fb270300d20b76a04a0af735b6` |
+| NVIDIA vGPU/VFIO interface headers | NVIDIA (public headers) | MIT | `kernel/include/nvstatus.h` | `e8267172a1f7a56420d612c6734b3554b9ff6a3d33fdda21b1371ff4ce4b8675` |
+| NVIDIA vGPU/VFIO interface headers | NVIDIA (public headers) | MIT | `kernel/include/nvtypes.h` | `e647e23504fe4b6cc2337836b2155c49918ed174bd9a3d806125e7c12e894f2a` |
+| GPL-2.0 license text | FSF | License text (not software) | `userspace/LICENSE` | — |
+
+No NVIDIA source code, firmware image or binary driver is bundled: only
+independently written code and public MIT-licensed interface headers.
+
+## 5. Archived documentation and media (third-party provenance)
+
+`wiki/` contains a historical scrape of the project's earlier wiki (year 2023)
+plus current project wiki pages. It is documentation, not runnable software.
+
+* The project's own wiki pages are BSD-3-Clause.
+* The archived HTML pages and images include **third-party diagrams, screenshots
+ and logos** produced by other projects/vendors (for example Intel, Red Hat,
+ NVIDIA, the Linux kernel community, Looking Glass and QEMU contributors).
+ These are retained for historical reference; their licenses are
+ `NOASSERTION` here and are governed by their originating projects.
+* If any archived media must be redistributed under a specific license, obtain
+ it from the originating project; if an artifact is believed to be improperly
+ included, open an issue (the project would rather over-comply).
+
+## 6. External dependencies (required to build, run or support the software)
+
+These components are **not distributed** in this repository. Versions are those
+the project develops and tests against; see `config/versions/*.yaml` and
+`.github/workflows/ci.yml` for the supported matrix.
+
+### Runtime — virtualization platform
+
+| Component | Version | License | Role |
+|---|---|---|---|
+| Linux kernel | ≥ 6.1 (tested 6.8.0-142; CI 6.1/6.6/6.8) | GPL-2.0-only | Host kernel; VFIO, mdev, IOMMU and DMA interfaces |
+| QEMU | distribution version | GPL-2.0 | VM monitor (q35 + `pcie-root-port` + `vfio-pci` mdev) |
+| KVM | in-kernel | GPL-2.0 | Hardware virtualization |
+| VFIO / mdev / IOMMUFD | in-kernel | GPL-2.0 | Device assignment and mediated devices |
+| libvirt | distribution version | LGPL-2.1 | Optional management layer |
+| OVMF | distribution version | BSD-2-Clause-Patent | UEFI firmware for guests (optional) |
+
+### Runtime — NVIDIA (proprietary, user-supplied; not distributed)
+
+| Component | Version | License | Role |
+|---|---|---|---|
+| NVIDIA guest driver (`nvidia.ko`, `libcuda.so`) | 570.144 | NVIDIA proprietary EULA | The unmodified guest driver Open-IOV serves |
+| NVIDIA GSP firmware (TU102) | 570.144W | NVIDIA proprietary (redistribution restricted) | Fetched by `install.sh` from public NVIDIA `linux-firmware`; pinned MD5 `13ce12a392a31eeb79a2e6ebd3a4a93a`; **never committed** |
+| NVIDIA host distribution driver | 570.211.01 | NVIDIA proprietary EULA | Host GPU management (tested configuration) |
+| NVIDIA open-gpu-kernel-modules | tag 610.57.04 | MIT / GPL-2.0 dual | Cloned at a pinned tag by `install.sh` for build glue; **not committed** |
+| NVIDIA CUDA toolkit | 12.4 | NVIDIA proprietary EULA | Building `tools/cuda-ab` and running CUDA workloads |
+| Ubuntu guest OS | 24.04 LTS | Various (GPL and others) | Guest environment |
+
+### Build, test and analysis tooling
+
+| Component | Version | License | Role |
+|---|---|---|---|
+| GCC / binutils / make / bc / flex / bison | distribution | GPL-3.0 / LGPL-2.1 | Kernel and userspace builds |
+| Linux kernel headers | matching host kernel | GPL-2.0 | Kernel module builds |
+| OpenSSL (`libssl-dev`), libelf | distribution | Apache-2.0, LGPL-2.1/GPL | Build dependencies |
+| Python 3 | ≥ 3.10 | PSF-2.0 | All analysis and diagnostic tooling |
+| PyTorch | distribution version (optional) | BSD-3-Clause | Optional guest test agent (`tools/guest_agent/`) |
+| GDB (+ Python bindings) | distribution | GPL-3.0 | Guest/host debugging and one-shot samplers |
+| Ghidra | 11.x | Apache-2.0 | Firmware and CUDA userspace decompilation |
+| OpenJDK | 21 | GPL-2.0 with Classpath Exception | Runs Ghidra |
+| pkg-config, uuid-runtime, kmod, pciutils, curl, wget, git, ca-certificates | distribution | GPL-2.0/BSD-3-Clause/curl license/MPL-2.0 | Build and diagnostic utilities |
+| GitHub Actions (CI service) | hosted | GitHub Terms | CI runner service used by `.github/workflows/ci.yml` |
+
+## 7. Dependency relationships
+
+```
+pkg:generic/open-iov@0.1.0
+├── contains open-iov-vfio (kernel module) ── depends on ── Linux kernel (VFIO/mdev/IOMMU/DMA)
+├── contains libiov / libvgpu ── depends on ── tomlc99, cargs
+├── contains example_vgpu, userspace tests, kernel tests
+├── contains tools (guest-diag, cuda-ab, rmq, ghidra, guest_agent, vm/module/debug/test)
+│ ├── cuda-ab ── needs ── NVIDIA CUDA toolkit 12.4
+│ ├── ghidra tools ── needs ── Ghidra + OpenJDK
+│ └── guest_agent ── optional ── PyTorch
+├── contains firmware analysis artifacts (570.144W) and CUDA analysis (570.144)
+├── contains scripts, config, docs, wiki archive, CI
+└── operates against (external, not distributed)
+ ├── NVIDIA guest driver 570.144 + libcuda
+ ├── NVIDIA GSP firmware 570.144W (fetched at install time)
+ ├── QEMU + KVM + VFIO/mdev (hypervisor platform)
+ └── Ubuntu 24.04 guest OS
+```
+
+The machine-readable document encodes these relationships in the CycloneDX
+`dependencies` graph.
+
+## 8. License summary and redistribution
+
+| License | Applies to | Redistribution |
+|---|---|---|
+| BSD-3-Clause | Project code outside `kernel/` (`userspace/`, `tools/`, `scripts/`, `config/`, `docs/`, examples, tests, CI) | Permitted, with copyright notice |
+| GPL-2.0 | `kernel/**` (kernel module) and in-kernel tests | Permitted under GPL-2.0 terms |
+| MIT | tomlc99, cargs, NVIDIA public interface headers | Permitted, with notice |
+| NVIDIA proprietary | Guest driver, host driver, GSP firmware, CUDA toolkit | **Not redistributed by this project**; governed by NVIDIA's EULA. Users obtain them directly from NVIDIA/public distribution channels |
+| Various / NOASSERTION | Archived third-party media in `wiki/` (§5) | Governed by originating projects; remove if terms cannot be met |
+
+Notes:
+
+* `userspace/LICENSE` contains GPL-2.0 license text; the authoritative license
+ of each file is its `SPDX-License-Identifier` (the userspace libraries are
+ BSD-3-Clause per `docs/09-reference/legal-and-licensing.md`).
+* GSP firmware and drivers may be subject to export-control regulations;
+ deployers are responsible for compliance.
+* Contributions are inbound=outbound (BSD-3 for BSD-3 files, GPL-2.0 for
+ GPL-2.0 files); see `docs/09-reference/legal-and-licensing.md`.
+
+## 9. NTIA minimum-elements compliance
+
+| NTIA minimum element | Where satisfied |
+|---|---|
+| Supplier name | §1, §3, §4, §6 (per component) |
+| Component name | §3, §4, §6 |
+| Component version | §3, §4, §6 |
+| Other unique identifiers | Package URLs (`pkg:…`) in §1/§3 and the CycloneDX file |
+| Dependency relationships | §7 and CycloneDX `dependencies` |
+| SBOM author | Document metadata (The Open-IOV Project) |
+| Timestamp | Document metadata (`2026-10-02T06:47:39Z`) |
+| Hash of component | SHA-256 for bundled files and tracked binaries (§3, §4, CycloneDX `hashes`) |
+
+## 10. Verification
+
+* Machine-readable SBOM: [`sbom/open-iov-0.1.0.cdx.json`](sbom/open-iov-0.1.0.cdx.json)
+ (CycloneDX 1.6, serial `urn:uuid:e626c5a1-9697-4546-bb2b-5b4feb58e922`).
+* File hashes in this document and in the CycloneDX file can be verified with
+ `sha256sum` against a checkout of the same revision.
+* To reproduce the inventory: all paths above are relative to the repository
+ root; `git ls-files` enumerates the tracked payload.
+* Vulnerability management: components with known ecosystems (tomlc99, cargs,
+ NVIDIA headers, Linux kernel, Python, Ghidra) can be matched by purl/CPE by
+ standard SBOM tooling. The project itself carries no bundled libraries with
+ third-party transitive dependencies.
+
+## 11. Generation and revision history
+
+| Date (UTC) | Version | Change |
+|---|---|---|
+| 2026-10-02 | 1 | Initial complete SBOM replacing the 2023 wiki survey page. Inventory audited against the tracked tree; tracked binaries hashed; external/optional dependencies enumerated; NTIA checklist added. |
diff --git a/docs/02-getting-started/01-install-and-first-run.md b/docs/02-getting-started/01-install-and-first-run.md
index d1c57c3..c1a8f5d 100644
--- a/docs/02-getting-started/01-install-and-first-run.md
+++ b/docs/02-getting-started/01-install-and-first-run.md
@@ -88,7 +88,7 @@ any other VFIO device.
./scripts/stack_manager.sh qemu # reference raw-QEMU guest with the mdev
```
-Or integrate with your own stack (libvirt, ``, Xen, ...): attach the mdev
+Or integrate with your own stack (libvirt, Xen, ...): attach the mdev
device to the guest exactly as you would any VFIO device:
```xml
diff --git a/docs/07-developers/onboarding-and-standards.md b/docs/07-developers/onboarding-and-standards.md
index b3ac1c5..241e03f 100644
--- a/docs/07-developers/onboarding-and-standards.md
+++ b/docs/07-developers/onboarding-and-standards.md
@@ -112,7 +112,7 @@ The following rules each come from a real bug and are enforced in review:
* `open-iov-vfio.ko` is **standalone**: no `MODULE_SOFTDEP`/dependency on
`nvidia` — `nvidia.ko` imports our symbols, not the other way around.
* VM access in tooling goes through `scripts/vgpu_vm.py`; do not invoke
- ``/QEMU directly.
+ QEMU directly.
* Scripts never reboot or otherwise change system state without explicit
operator action (project hard rule).
* Do not widen an API's hardware assumptions silently: if a function needs
diff --git a/docs/09-reference/legal-and-licensing.md b/docs/09-reference/legal-and-licensing.md
index 57aad43..87d8002 100644
--- a/docs/09-reference/legal-and-licensing.md
+++ b/docs/09-reference/legal-and-licensing.md
@@ -2,6 +2,10 @@
> What is licensed how, what we may redistribute, and how we stay clean while
> doing adversarial interoperability.
+>
+> The complete component and license inventory is the SBOM:
+> [`../../SBOM.md`](../../SBOM.md) (machine-readable:
+> [`../../sbom/open-iov-0.1.0.cdx.json`](../../sbom/open-iov-0.1.0.cdx.json)).
## 1. The project's licenses
diff --git a/install.sh b/install.sh
index 36a1ef2..a70e84b 100755
--- a/install.sh
+++ b/install.sh
@@ -14,7 +14,7 @@
# 7. mdev Create a vGPU mdev device (root)
#
# After install.sh completes, attach the mdev to ANY QEMU wrapper you like
-# (libvirt <hostdev>, , or raw QEMU -device vfio-pci,sysfsdev=...).
+# (libvirt <hostdev>, or raw QEMU -device vfio-pci,sysfsdev=...).
# A reference raw-QEMU launcher is provided: scripts/launch_qemu_vgpu.sh
#
# Read first (progressive disclosure):
diff --git a/kernel/main.c b/kernel/main.c
index 3784a70..fbeb7e3 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -105,9 +105,9 @@ static unsigned int nv_vgpu_get_available(struct mdev_type *mtype)
/*
* show_description - mdev type description for management tools.
*
- * / parses "framebuffer=<n>M" from this string for EVERY
+ * Management tools parse "framebuffer=<n>M" from this string for every
* supported type before creating an mdev, so the field is mandatory
- * (missing description file -> readFile failure -> no vGPU).
+ * (a missing description fails type enumeration).
* 256M matches the vGPU BAR1 (VRAM aperture) size we expose to guests.
*/
static ssize_t nv_vgpu_show_description(struct mdev_type *mtype, char *buf)
diff --git a/sbom/open-iov-0.1.0.cdx.json b/sbom/open-iov-0.1.0.cdx.json
new file mode 100644
index 0000000..1db09d3
--- /dev/null
+++ b/sbom/open-iov-0.1.0.cdx.json
@@ -0,0 +1,625 @@
+{
+ "bomFormat": "CycloneDX",
+ "specVersion": "1.6",
+ "serialNumber": "urn:uuid:e626c5a1-9697-4546-bb2b-5b4feb58e922",
+ "version": 1,
+ "metadata": {
+ "timestamp": "2026-10-02T06:47:39Z",
+ "authors": [
+ { "name": "The Open-IOV Project" }
+ ],
+ "tools": {
+ "components": [
+ {
+ "type": "application",
+ "bom-ref": "tool:open-iov-inventory-audit",
+ "name": "open-iov-inventory-audit",
+ "version": "1",
+ "supplier": { "name": "The Open-IOV Project" }
+ }
+ ]
+ },
+ "component": {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov@0.1.0",
+ "name": "open-iov",
+ "version": "0.1.0",
+ "description": "Open-source virtualization layer for NVIDIA GPUs: emulates the GSP/GSP-RM interface in a host kernel module so unmodified guest drivers can run in VMs and work executes on the physical GPU.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov@0.1.0",
+ "externalReferences": [
+ { "type": "vcs", "url": "https://git.vgpu.io/open-iov.git" },
+ { "type": "documentation", "url": "https://git.vgpu.io/open-iov.git/blob/master/docs/README.md" }
+ ],
+ "properties": [
+ { "name": "open-iov:license-policy", "value": "BSD-3-Clause for userspace/tools/scripts/config/docs; GPL-2.0-only for kernel/**; per-file SPDX headers govern" },
+ { "name": "open-iov:compliance", "value": "NTIA minimum elements; CycloneDX 1.6" },
+ { "name": "open-iov:sbom-page", "value": "SBOM.md" }
+ ]
+ },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "properties": [
+ { "name": "open-iov:scope", "value": "All files tracked in the repository plus external build/run dependencies; NVIDIA firmware and drivers are not distributed" },
+ { "name": "open-iov:audited-revision", "value": "parent commit of the commit adding this document (version 0.1.0)" }
+ ]
+ },
+ "components": [
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-vfio@0.1.0",
+ "name": "open-iov-vfio",
+ "version": "0.1.0",
+ "description": "Host VFIO mdev kernel module: virtual GPU device, GSP/GSP-RM emulation, semaphore service, memory model, physical-GPU backend.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "GPL-2.0-only" } } ],
+ "purl": "pkg:generic/open-iov-vfio@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "kernel/**" } ]
+ },
+ {
+ "type": "library",
+ "bom-ref": "pkg:generic/libiov@0.1.0",
+ "name": "libiov",
+ "version": "0.1.0",
+ "description": "Userspace management library (libiov.so, libvgpu.so compatibility link) with RPC emulation helpers.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/libiov@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "userspace/lib/**, userspace/include/libvgpu.h" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-example@0.1.0",
+ "name": "open-iov-example",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-example@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "userspace/examples/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-userspace-tests@0.1.0",
+ "name": "open-iov-userspace-tests",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-userspace-tests@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "userspace/tests/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-kernel-tests@0.1.0",
+ "name": "open-iov-kernel-tests",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "GPL-2.0-only" } } ],
+ "purl": "pkg:generic/open-iov-kernel-tests@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "kernel/tests/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-guest-diag@0.1.0",
+ "name": "open-iov-guest-diag",
+ "version": "0.1.0",
+ "description": "Guest diagnostics and VM cycle tooling: kprobes, pin scanners, CUDA smoke test wrappers, QEMU launch snapshots.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-guest-diag@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/guest-diag/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-cuda-ab@0.1.0",
+ "name": "open-iov-cuda-ab",
+ "version": "0.1.0",
+ "description": "CUDA A/B harness comparing host and guest execution of a deterministic vector_add workload.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-cuda-ab@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/cuda-ab/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-rmq@0.1.0",
+ "name": "open-iov-rmq",
+ "version": "0.1.0",
+ "description": "RM queue / WPR tooling including a companion kernel module.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-rmq@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/rmq/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-ghidra-tools@0.1.0",
+ "name": "open-iov-ghidra-tools",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-ghidra-tools@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/ghidra/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-guest-agent@0.1.0",
+ "name": "open-iov-guest-agent",
+ "version": "0.1.0",
+ "description": "Guest test agent (optional; uses PyTorch when available).",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-guest-agent@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/guest_agent/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-tools-misc@0.1.0",
+ "name": "open-iov-tools-misc",
+ "version": "0.1.0",
+ "description": "VM harness, module operations, debug helpers and test helpers.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-tools-misc@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "tools/{vm,module_ops,debug,test}/**" } ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-gsp-analysis@570.144W",
+ "name": "open-iov-gsp-analysis",
+ "version": "570.144W",
+ "description": "GSP firmware analysis work product: analysis scripts, function maps, RPC handler maps and reports. No NVIDIA binaries.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-gsp-analysis@570.144W",
+ "properties": [ { "name": "open-iov:path", "value": "firmware/57X-GSP/570.144/**" } ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-cuda-analysis@570.144",
+ "name": "open-iov-cuda-analysis",
+ "version": "570.144",
+ "description": "CUDA userspace driver (libcuda) analysis: docs, tooling and annotation tables.",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-cuda-analysis@570.144",
+ "properties": [ { "name": "open-iov:path", "value": "userspace/cuda/**" } ]
+ },
+ {
+ "type": "application",
+ "bom-ref": "pkg:generic/open-iov-scripts@0.1.0",
+ "name": "open-iov-scripts",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-scripts@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "scripts/**, install.sh, validate.sh, Makefile" } ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-config@0.1.0",
+ "name": "open-iov-config",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-config@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "config/**" } ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-docs@0.1.0",
+ "name": "open-iov-docs",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-docs@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": "docs/**, README.md, STATE-CURRENT.md" } ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-wiki-archive@2023",
+ "name": "open-iov-wiki-archive",
+ "version": "2023",
+ "description": "Project wiki pages plus an archived scrape of the earlier public wiki. Contains historical third-party media (NOASSERTION).",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-wiki-archive@2023",
+ "properties": [
+ { "name": "open-iov:path", "value": "wiki/**" },
+ { "name": "open-iov:third-party-media", "value": "Archived diagrams/screenshots/logos retain their originating projects' terms; see SBOM.md section 5" }
+ ]
+ },
+ {
+ "type": "data",
+ "bom-ref": "pkg:generic/open-iov-ci@0.1.0",
+ "name": "open-iov-ci",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "purl": "pkg:generic/open-iov-ci@0.1.0",
+ "properties": [ { "name": "open-iov:path", "value": ".github/workflows/ci.yml" } ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:vector_add",
+ "name": "vector_add (prebuilt)",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "8edc28a8814f108a85b794ca4e636138de03f45f706cb96bd008f420a87e8036" } ],
+ "properties": [
+ { "name": "open-iov:path", "value": "tools/cuda-ab/run/vector_add" },
+ { "name": "open-iov:source", "value": "tools/cuda-ab/vector_add.cu" }
+ ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:wpr2_reset",
+ "name": "wpr2_reset (prebuilt)",
+ "version": "0.1.0",
+ "supplier": { "name": "The Open-IOV Project" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "cae6537a41f0e548349617a7c44f411dc5c38f16000ce1879ba49814e82c2361" } ],
+ "properties": [
+ { "name": "open-iov:path", "value": "tools/rmq/wpr2_reset" },
+ { "name": "open-iov:source", "value": "tools/rmq/wpr2_reset.c" }
+ ]
+ },
+ {
+ "type": "library",
+ "bom-ref": "pkg:github/cktan/tomlc99@vendored",
+ "name": "tomlc99",
+ "version": "vendored snapshot (version not recorded)",
+ "description": "TOML parser used by the userspace library.",
+ "supplier": { "name": "CK Tan" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "purl": "pkg:github/cktan/tomlc99@vendored",
+ "hashes": [ { "alg": "SHA-256", "content": "ca70a545ce442d878587bb2767de8c7e6219b43ba832fa87c4b8a8c4f4f8221f" } ],
+ "properties": [
+ { "name": "open-iov:path", "value": "userspace/extern/src/toml.c, userspace/extern/inc/toml.h" },
+ { "name": "open-iov:header-sha256", "value": "0c56ba78add80e49073b12de039835718c29410669d7a526e65bc8212e1dc135" }
+ ]
+ },
+ {
+ "type": "library",
+ "bom-ref": "pkg:github/likle/cargs@vendored",
+ "name": "cargs",
+ "version": "vendored snapshot (version not recorded)",
+ "description": "Command-line argument parser used by the userspace library.",
+ "supplier": { "name": "Leonard Iklo" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "purl": "pkg:github/likle/cargs@vendored",
+ "hashes": [ { "alg": "SHA-256", "content": "d6c88f89b1d948f4b221c54103f17f6575bd580fcaffb0de3dfbceb2dd6136ab" } ],
+ "properties": [
+ { "name": "open-iov:path", "value": "userspace/extern/src/cargs.c, userspace/extern/inc/cargs.h" },
+ { "name": "open-iov:header-sha256", "value": "93d3e1cb40d6eb646b7f50051ee9ad3f664ffe21d103164f98e89e9775bb91cb" }
+ ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:nv-hypervisor.h",
+ "name": "nv-hypervisor.h",
+ "version": "570.144",
+ "supplier": { "name": "NVIDIA CORPORATION" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "733409c43ab65708bf5563b76e4dea9d1dfbe1d5cfa0d846fbba511a1186f932" } ],
+ "properties": [ { "name": "open-iov:path", "value": "kernel/include/nv-hypervisor.h" } ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:nv-vgpu-vfio-interface.h",
+ "name": "nv-vgpu-vfio-interface.h",
+ "version": "570.144",
+ "supplier": { "name": "NVIDIA CORPORATION" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "83908a89a7f6df2631d24bb2518bbb5643c4f1fb270300d20b76a04a0af735b6" } ],
+ "properties": [ { "name": "open-iov:path", "value": "kernel/include/nv-vgpu-vfio-interface.h" } ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:nvstatus.h",
+ "name": "nvstatus.h",
+ "version": "570.144",
+ "supplier": { "name": "NVIDIA CORPORATION" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "e8267172a1f7a56420d612c6734b3554b9ff6a3d33fdda21b1371ff4ce4b8675" } ],
+ "properties": [ { "name": "open-iov:path", "value": "kernel/include/nvstatus.h" } ]
+ },
+ {
+ "type": "file",
+ "bom-ref": "file:nvtypes.h",
+ "name": "nvtypes.h",
+ "version": "570.144",
+ "supplier": { "name": "NVIDIA CORPORATION" },
+ "licenses": [ { "license": { "id": "MIT" } } ],
+ "hashes": [ { "alg": "SHA-256", "content": "e647e23504fe4b6cc2337836b2155c49918ed174bd9a3d806125e7c12e894f2a" } ],
+ "properties": [ { "name": "open-iov:path", "value": "kernel/include/nvtypes.h" } ]
+ },
+ {
+ "type": "operating-system",
+ "bom-ref": "dep:linux-kernel",
+ "name": "Linux kernel",
+ "version": ">=6.1 (tested 6.8.0-142; CI 6.1/6.6/6.8)",
+ "description": "Host kernel providing VFIO, mdev, IOMMU and DMA interfaces.",
+ "supplier": { "name": "Linux kernel community" },
+ "licenses": [ { "license": { "id": "GPL-2.0-only" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:qemu",
+ "name": "QEMU",
+ "version": "distribution version",
+ "supplier": { "name": "QEMU Project" },
+ "licenses": [ { "license": { "id": "GPL-2.0-only" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "library",
+ "bom-ref": "dep:vfio-mdev",
+ "name": "VFIO / mdev",
+ "version": "in-kernel",
+ "supplier": { "name": "Linux kernel community" },
+ "licenses": [ { "license": { "id": "GPL-2.0-only" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "library",
+ "bom-ref": "dep:libvirt",
+ "name": "libvirt",
+ "version": "distribution version",
+ "supplier": { "name": "libvirt Project" },
+ "licenses": [ { "license": { "id": "LGPL-2.1-only" } } ],
+ "scope": "optional"
+ },
+ {
+ "type": "firmware",
+ "bom-ref": "dep:ovmf",
+ "name": "OVMF",
+ "version": "distribution version",
+ "supplier": { "name": "TianoCore" },
+ "licenses": [ { "license": { "id": "BSD-2-Clause-Patent" } } ],
+ "scope": "optional"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:nvidia-guest-driver",
+ "name": "NVIDIA guest driver (nvidia.ko, libcuda.so)",
+ "version": "570.144",
+ "description": "The unmodified guest driver served by Open-IOV. Not distributed by this project.",
+ "supplier": { "name": "NVIDIA Corporation" },
+ "licenses": [ { "license": { "name": "NVIDIA proprietary EULA" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "firmware",
+ "bom-ref": "dep:nvidia-gsp-firmware",
+ "name": "NVIDIA GSP firmware (TU102)",
+ "version": "570.144W",
+ "description": "Fetched at install time from public NVIDIA linux-firmware; pinned MD5 13ce12a392a31eeb79a2e6ebd3a4a93a. Never committed.",
+ "supplier": { "name": "NVIDIA Corporation" },
+ "licenses": [ { "license": { "name": "NVIDIA proprietary (redistribution restricted)" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:nvidia-host-driver",
+ "name": "NVIDIA host distribution driver",
+ "version": "570.211.01",
+ "supplier": { "name": "NVIDIA Corporation" },
+ "licenses": [ { "license": { "name": "NVIDIA proprietary EULA" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:nvidia-openrm",
+ "name": "NVIDIA open-gpu-kernel-modules",
+ "version": "610.57.04 (pinned tag)",
+ "description": "Cloned at a pinned tag by install.sh for build glue; patched locally; never committed.",
+ "supplier": { "name": "NVIDIA Corporation" },
+ "licenses": [ { "expression": "MIT OR GPL-2.0-only" } ],
+ "scope": "optional"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:cuda-toolkit",
+ "name": "NVIDIA CUDA toolkit",
+ "version": "12.4",
+ "supplier": { "name": "NVIDIA Corporation" },
+ "licenses": [ { "license": { "name": "NVIDIA proprietary EULA" } } ],
+ "scope": "optional"
+ },
+ {
+ "type": "operating-system",
+ "bom-ref": "dep:ubuntu-guest",
+ "name": "Ubuntu",
+ "version": "24.04 LTS",
+ "supplier": { "name": "Canonical" },
+ "licenses": [ { "license": { "name": "Various free software licenses" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:gcc",
+ "name": "GCC",
+ "version": "11-13",
+ "supplier": { "name": "GNU Project" },
+ "licenses": [ { "license": { "id": "GPL-3.0-or-later" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:binutils",
+ "name": "GNU binutils",
+ "version": "distribution version",
+ "supplier": { "name": "GNU Project" },
+ "licenses": [ { "license": { "id": "GPL-3.0-or-later" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:make",
+ "name": "GNU make",
+ "version": "distribution version",
+ "supplier": { "name": "GNU Project" },
+ "licenses": [ { "license": { "id": "GPL-3.0-or-later" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:python3",
+ "name": "Python",
+ "version": ">=3.10",
+ "supplier": { "name": "Python Software Foundation" },
+ "licenses": [ { "license": { "id": "PSF-2.0" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "library",
+ "bom-ref": "dep:pytorch",
+ "name": "PyTorch",
+ "version": "distribution version",
+ "supplier": { "name": "PyTorch Foundation" },
+ "licenses": [ { "license": { "id": "BSD-3-Clause" } } ],
+ "scope": "optional"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:gdb",
+ "name": "GDB",
+ "version": "distribution version",
+ "supplier": { "name": "GNU Project" },
+ "licenses": [ { "license": { "id": "GPL-3.0-or-later" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:ghidra",
+ "name": "Ghidra",
+ "version": "11.x",
+ "supplier": { "name": "NSA / Ghidra Project" },
+ "licenses": [ { "license": { "id": "Apache-2.0" } } ],
+ "scope": "optional"
+ },
+ {
+ "type": "application",
+ "bom-ref": "dep:openjdk",
+ "name": "OpenJDK",
+ "version": "21",
+ "supplier": { "name": "OpenJDK community" },
+ "licenses": [ { "expression": "GPL-2.0-only WITH Classpath-exception-2.0" } ],
+ "scope": "optional"
+ },
+ {
+ "type": "library",
+ "bom-ref": "dep:openssl",
+ "name": "OpenSSL",
+ "version": "distribution version",
+ "supplier": { "name": "OpenSSL Project" },
+ "licenses": [ { "license": { "id": "Apache-2.0" } } ],
+ "scope": "required"
+ },
+ {
+ "type": "library",
+ "bom-ref": "dep:libelf",
+ "name": "libelf",
+ "version": "distribution version",
+ "supplier": { "name": "elfutils / Linux community" },
+ "licenses": [ { "expression": "LGPL-2.1-or-later OR GPL-2.0-or-later" } ],
+ "scope": "required"
+ }
+ ],
+ "dependencies": [
+ {
+ "ref": "pkg:generic/open-iov@0.1.0",
+ "dependsOn": [
+ "pkg:generic/open-iov-vfio@0.1.0",
+ "pkg:generic/libiov@0.1.0",
+ "pkg:generic/open-iov-example@0.1.0",
+ "pkg:generic/open-iov-userspace-tests@0.1.0",
+ "pkg:generic/open-iov-kernel-tests@0.1.0",
+ "pkg:generic/open-iov-guest-diag@0.1.0",
+ "pkg:generic/open-iov-cuda-ab@0.1.0",
+ "pkg:generic/open-iov-rmq@0.1.0",
+ "pkg:generic/open-iov-ghidra-tools@0.1.0",
+ "pkg:generic/open-iov-guest-agent@0.1.0",
+ "pkg:generic/open-iov-tools-misc@0.1.0",
+ "pkg:generic/open-iov-gsp-analysis@570.144W",
+ "pkg:generic/open-iov-cuda-analysis@570.144",
+ "pkg:generic/open-iov-scripts@0.1.0",
+ "pkg:generic/open-iov-config@0.1.0",
+ "pkg:generic/open-iov-docs@0.1.0",
+ "pkg:generic/open-iov-wiki-archive@2023",
+ "pkg:generic/open-iov-ci@0.1.0",
+ "dep:linux-kernel",
+ "dep:qemu",
+ "dep:nvidia-guest-driver",
+ "dep:nvidia-gsp-firmware",
+ "dep:ubuntu-guest"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-vfio@0.1.0",
+ "dependsOn": [
+ "dep:linux-kernel",
+ "dep:vfio-mdev",
+ "file:nv-hypervisor.h",
+ "file:nv-vgpu-vfio-interface.h",
+ "file:nvstatus.h",
+ "file:nvtypes.h"
+ ]
+ },
+ {
+ "ref": "pkg:generic/libiov@0.1.0",
+ "dependsOn": [
+ "pkg:github/cktan/tomlc99@vendored",
+ "pkg:github/likle/cargs@vendored"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-cuda-ab@0.1.0",
+ "dependsOn": [
+ "dep:cuda-toolkit",
+ "file:vector_add"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-rmq@0.1.0",
+ "dependsOn": [
+ "file:wpr2_reset"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-ghidra-tools@0.1.0",
+ "dependsOn": [
+ "dep:ghidra",
+ "dep:openjdk"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-guest-agent@0.1.0",
+ "dependsOn": [
+ "dep:python3",
+ "dep:pytorch"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-guest-diag@0.1.0",
+ "dependsOn": [
+ "dep:python3",
+ "dep:gdb",
+ "dep:qemu"
+ ]
+ },
+ {
+ "ref": "pkg:generic/open-iov-scripts@0.1.0",
+ "dependsOn": [
+ "dep:gcc",
+ "dep:make",
+ "dep:binutils",
+ "dep:openssl",
+ "dep:libelf",
+ "dep:python3"
+ ]
+ }
+ ]
+}
diff --git a/scripts/launch_qemu_direct.sh b/scripts/launch_qemu_direct.sh
index 25e628c..8ff315f 100755
--- a/scripts/launch_qemu_direct.sh
+++ b/scripts/launch_qemu_direct.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# launch_qemu_direct.sh - launch the vGPU VM without , with a serial
+# launch_qemu_direct.sh - launch the vGPU VM directly, with a serial
# socket, QMP socket and guest agent socket that tools/guest-diag scripts
# expect. The mdev UUID is taken from $1 or MDEV_UUID, else the first
# existing /sys/bus/mdev/devices entry.
diff --git a/scripts/stack_manager.sh b/scripts/stack_manager.sh
index faf345b..5598817 100755
--- a/scripts/stack_manager.sh
+++ b/scripts/stack_manager.sh
@@ -238,8 +238,8 @@ cmd_list_mdev() {
# ============================================================
cmd_launch_qemu() {
- # WORKFLOW RULE: always use the QEMU harness (vgpu_vm.py), never
- # or raw QEMU directly - the harness owns , mdev lifecycle, QMP,
+ # WORKFLOW RULE: always use the QEMU harness (vgpu_vm.py), never raw
+ # QEMU directly - the harness owns the mdev lifecycle, QMP,
# guest-agent and serial logging.
local harness="$BASE_DIR/scripts/vgpu_vm.py"
if [[ ! -f "$harness" ]]; then
diff --git a/tools/guest-diag/README.md b/tools/guest-diag/README.md
index 618663b..ea5ac14 100644
--- a/tools/guest-diag/README.md
+++ b/tools/guest-diag/README.md
@@ -37,8 +37,8 @@ launch_qemu_rootport.sh -> relaunch. Guest boots in ~60-75 s.
## launch_qemu_rootport.sh - QEMU command line with pcie-root-port
-Snapshot of the working launch command (derived from 's argv of a stopped
-VM) plus the root-port fix. **Requires** the mdev UUID to be substituted and:
+Snapshot of the working launch command (captured from a running VM's QEMU
+process) plus the root-port fix. **Requires** the mdev UUID to be substituted and:
mkdir -p /tmp/sockets/<domain-uuid> # else QMP bind fails
rm -f /tmp/qemu-guest-agent.sock /tmp/qemu-qmp.sock
diff --git a/userspace/cuda/docs/04-virtualization-and-emulation.md b/userspace/cuda/docs/04-virtualization-and-emulation.md
index 89adc35..6492a60 100644
--- a/userspace/cuda/docs/04-virtualization-and-emulation.md
+++ b/userspace/cuda/docs/04-virtualization-and-emulation.md
@@ -204,7 +204,7 @@ The same analysis supports:
effect, the decoder learns it, not the whole stack.
* **Multiple hypervisors**: the emulation boundary is VFIO/mdev today, but the
interface analysis is hypervisor-neutral (the same stock guest runs under
- libvirt, / or raw QEMU).
+ libvirt or raw QEMU).
* **Emulation and passthrough**: as noted in §2, both are implementations of
the same interface; a passthrough deployment validates the guest stack and
narrows the emulation's responsibility to the control plane.
diff --git a/wiki/GPU_SBOM.md b/wiki/GPU_SBOM.md
index a277802..f7df955 100644
--- a/wiki/GPU_SBOM.md
+++ b/wiki/GPU_SBOM.md
@@ -1,264 +1,18 @@
-::: {#mw-page-base .noprint}
-:::
-
-::: {#mw-head-base .noprint}
-:::
-
-::: {#content .mw-body role="main"}
-[]{#top}
-
-::: {#siteNotice}
-:::
-
-::: mw-indicators
-:::
-
-# GPU Software Bill Of Materials (SBOM) {#firstHeading .firstHeading}
-
-> **Imported 2023 material — superseded.** This page is an archived copy of the
-> previous project wiki (circa 2023) and is kept for historical reference.
-> Current documentation:
-> [`../docs/03-architecture/`](../docs/03-architecture/) and
-> [`../docs/09-reference/`](../docs/09-reference/).
-
-::: {#bodyContent .vector-body}
-::: {#siteSub .noprint}
-From Open-IOV
-:::
-
-::: {#contentSub}
-::: {.mw-revision .warningbox}
-::: {#mw-revision-info}
-Revision as of 14:58, 13 June 2023 by
-[Arthur](./index.php%3Ftitle=User:Arthur&action=edit&redlink=1.html "User:Arthur (page does not exist)"){.new
-.mw-userlink}
-[([talk](./index.php%3Ftitle=User_talk:Arthur&action=edit&redlink=1.html "User talk:Arthur (page does not exist)"){.new
-.mw-usertoollinks-talk} \|
-[contribs](index.php/Special:Contributions/Arthur.html "Special:Contributions/Arthur"){.mw-usertoollinks-contribs})]{.mw-usertoollinks}
-[(Updated Nvidia VGX vGPU version to 15.2 in GPU SBOM.)]{.comment}
-:::
-
-::: {#mw-revision-nav}
-([diff](https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&diff=prev&oldid=23786 "GPU Software Bill Of Materials (SBOM)"))
-[← Older
-revision](https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&direction=prev&oldid=23786 "GPU Software Bill Of Materials (SBOM)")
-\| Latest revision (diff) \| Newer revision → (diff)
-:::
-:::
-:::
-
-::: {#contentSub2}
-:::
-
-::: {#jump-to-nav}
-:::
-
-[Jump to
-navigation](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html#mw-head){.mw-jump-link}
-[Jump to
-search](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html#searchInput){.mw-jump-link}
-
-::: {#mw-content-text .mw-body-content .mw-content-ltr lang="en" dir="ltr"}
-::: mw-parser-output
-This page will keep a running list of components used to achieve GPU
-Virtualization.
-
-> An absence of critical technical documentation has historically slowed
-> growth and adoption of developer ecosystems for GPU virtualization.
->
-> This
-> [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/){.external
-> .text rel="nofollow"} 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.
-
- ------------- ----------------------------------------------------------------------------------------------------------------------------------------------- ------------- ----------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------- ----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Vendor Component Description Version OSS or Blob Filesize Vendor Docs Release Date Interfaces / APIs Notes
- Microsoft Indirect Display Driver (IDD) Driver [OSS](https://github.com/Microsoft/Windows-driver-samples/tree/main/video/IndirectDisplay){.external .text rel="nofollow"} [Indirect Display Driver Overview](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/indirect-display-driver-model-overview){.external .text rel="nofollow"} [UMDF](https://learn.microsoft.com/en-us/windows-hardware/drivers/wdf/overview-of-the-umdf){.external .text rel="nofollow"}, [KMDF](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/){.external .text rel="nofollow"} The Indirect Display Driver (IDD) enables GPUs to render graphics at arbitrary resolutions without a physical display connected on Windows OS systems.
- RedHat vfio_pci Driver 6.2-rc1 [OSS](https://github.com/torvalds/linux/tree/master/drivers/vfio/pci){.external .text rel="nofollow"} in-kernel [RedHat](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-pci_passthrough){.external .text rel="nofollow"}, [kernel.org](https://docs.kernel.org/driver-api/vfio.html){.external .text rel="nofollow"} 2022.12.15 [irqfd](index.php/Virtual_I/O_Internals.html#Instruction_Execution){.external .text rel="nofollow"}, [ioeventfd](index.php/Virtual_I/O_Internals.html#Instruction_Execution){.external .text rel="nofollow"}, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"} Reference VFIO Stub driver used for discrete assignment of IO, and assignment of some SR-IOV-backed vGPU devices into virtual machines. This driver is commonly replaced with a vendor built VFIO interface with differing memory management and/or page pinning mechanisms which are specific to the vGPU software internals.
- Mediated Core (mdev.ko) Driver 6.2-rc1 OSS 0.044 MB [kernel.org](https://docs.kernel.org/driver-api/vfio-mediated-device.html){.external .text rel="nofollow"} 2016.xx.xx [irqfd](index.php/Virtual_I/O_Internals.html#Instruction_Execution){.external .text rel="nofollow"}, [ioeventfd](index.php/Virtual_I/O_Internals.html#Instruction_Execution){.external .text rel="nofollow"}, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"}, [Type 1 IOMMU](index.php/Virtual_I/O_Internals.html#Mediated_DMA_Translations){.external .text rel="nofollow"} The Mediated Core driver provides a common interface for mediated device management that can be used by drivers of different devices. It is an IOMMU/device-agnostic framework for exposing direct device access to user space in a secure, IOMMU-protected environment (based on VFIO).
- guest communication daemon Daemon 0.1.0 [OSS](https://){.external .text rel="nofollow"} [](){.external .text rel="nofollow"} 2023.02.08 [Virtio-Serial](https://fedoraproject.org/wiki/Features/VirtioSerial){.external .text rel="nofollow"}, CLI Handles IO to and from guests and the host using Virtio-Serial to handle multiple different guest modules.
- mdev management CLI 1.0 [OSS](https://){.external .text rel="nofollow"} 0.084 MB [](){.external .text rel="nofollow"} 2023.01.06 CLI, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"}, [RMAPI](index.php/GPU_Driver_Internals.html#RM_API){.external .text rel="nofollow"}, [Mediated Core](index.php/Virtual_I/O_Internals.html#Mediated_Core){.external .text rel="nofollow"} Configures the the [nvidia-vgpu-mgr](index.php/GPU_Driver_Internals.html#nvidia-vgpu-mgr){.external .text rel="nofollow"} process.
- Intel i915 SR-IOV Driver [5.15](https://github.com/intel/linux-intel-lts/tree/5.15/ADL-linux-ER){.external .text rel="nofollow"} OSS in-kernel Intel\'s open source GPU driver for [GuC](index.php/GPU_Firmware.html#GuC){.external .text rel="nofollow"}-equipped graphics accelerators.
- [GuC](index.php/GPU_Firmware.html#GuC){.external .text rel="nofollow"} μOS Firmware Blob IOMMU Interrupts, Power Management Interrupts, [GTT](index.php/GPU_Driver_Internals.html#GTT_(Graphics_Translation_Table)){.external .text rel="nofollow"} Handles scheduling, and power management.
- HuC [GTT](index.php/GPU_Driver_Internals.html#GTT_(Graphics_Translation_Table)){.external .text rel="nofollow"} Handles video encoding/decoding.
- [Display Virtualization for Windows OS](index.php/GPU_Driver_Internals.html#Display_Surface_Virtualization_2){.external .text rel="nofollow"} Driver [791](https://github.com/intel/Display-Virtualization-for-Windows-OS/releases/){.external .text rel="nofollow"} [OSS](https://github.com/intel/Display-Virtualization-for-Windows-OS){.external .text rel="nofollow"} [github.com/intel/Display-Virtualization-for-Windows-OS/blob/main/Readme.txt](https://github.com/intel/Display-Virtualization-for-Windows-OS/blob/main/Readme.txt){.external .text rel="nofollow"} [udmabuf](https://github.com/ikwzm/udmabuf){.external .text rel="nofollow"}, [UMDF](https://learn.microsoft.com/en-us/windows-hardware/drivers/wdf/overview-of-the-umdf){.external .text rel="nofollow"}, [KMDF](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/){.external .text rel="nofollow"} Intel\'s \'Display Virtualization for Windows OS\' provides a virtual pixel surface used for hardware graphics rendering using Microsoft\'s open source \'Indirect Display Driver (IDD)\'. Display virtualization for Windows OS makes use of display memory sharing primitives provided in-driver by the i915 host.
- Nvidia [OpenRM](index.php/OpenRM.html "OpenRM") Driver 525.85.12 OSS [github.com/NVIDIA/open-gpu-kernel-modules/blob/main/README.md](https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/README.md){.external .text rel="nofollow"} 2023.01.31 Nvidia\'s open source GPU driver for [GSP](index.php/GPU_Firmware.html#GSP){.external .text rel="nofollow"}-equipped graphics accelerators.
- [GSP](index.php/GPU_Firmware.html#GSP){.external .text rel="nofollow"} RM (uproc) Firmware Blob 2023.01.31 RPC Embedded firmware based on [LibOS](https://lwn.net/Articles/637658/){.external .text rel="nofollow"} containing the [RM Core](index.php/GPU_Driver_Internals.html#RM_Core){.external .text rel="nofollow"}.
- Falcon/NvRISC (uproc) FBIF (Frame Buffer Interface) / GMMU Embedded firmware which handles many aspects of the device including configuring the GPU\'s GMMU controller.
- nvidia-vgpud Daemon [v15.2](https://docs.nvidia.com/grid/15.0/whats-new-vgpu/index.html){.external .text rel="nofollow"} Blob 0.108 MB [docs.nvidia.com/grid](https://docs.nvidia.com/grid/index.html){.external .text rel="nofollow"} 2023.01.xx CLI, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"}, [RMAPI](index.php/GPU_Driver_Internals.html#RM_API){.external .text rel="nofollow"}, [Mediated Core](index.php/Virtual_I/O_Internals.html#Mediated_Core){.external .text rel="nofollow"} Configures the the [nvidia-vgpu-mgr](index.php/GPU_Driver_Internals.html#nvidia-vgpu-mgr){.external .text rel="nofollow"} process.
- nvidia-vgpu-mgr 0.132 MB 2023.01.xx [vmiop](index.php/GPU_Driver_Internals.html#vmiop){.external .text rel="nofollow"}, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"}, [RMAPI](index.php/GPU_Driver_Internals.html#RM_API){.external .text rel="nofollow"}, [vRPC](index.php/GPU_Driver_Internals.html#Guest_kernel_(nvidia.ko)){.external .text rel="nofollow"}, pRPC, [Mediated Core](index.php/Virtual_I/O_Internals.html#Mediated_Core){.external .text rel="nofollow"} Handles IO to and from guest RM, host RM, and hardware.
- libnvidia-vgpu.so Library 3.1 MB 2023.01.xx [vmiop](index.php/GPU_Driver_Internals.html#vmiop){.external .text rel="nofollow"}, [RMAPI](index.php/GPU_Driver_Internals.html#RM_API){.external .text rel="nofollow"}, [Mediated Core](index.php/Virtual_I/O_Internals.html#Mediated_Core){.external .text rel="nofollow"} Handles IO to and from guest RM, host RM, and hardware. Contains circular dependancies with [nvidia-vgpu-mgr](index.php/GPU_Driver_Internals.html#nvidia-vgpu-mgr){.external .text rel="nofollow"}.
- nvidia-vgpu-vfio.ko Driver 0.108 MB 2023.01.xx [Type 1 IOMMU](index.php/Virtual_I/O_Internals.html#Mediated_DMA_Translations){.external .text rel="nofollow"}, [irqfd, ioeventfd](index.php/Virtual_I/O_Internals.html#Instruction_Execution){.external .text rel="nofollow"}, [IOCTL](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/ioctl.rst){.external .text rel="nofollow"}, [Mediated Core](index.php/Virtual_I/O_Internals.html#Mediated_Core){.external .text rel="nofollow"} Handles incremental memory mapping (non-page pinning per the standard vfio-pci driver).
- ------------- ----------------------------------------------------------------------------------------------------------------------------------------------- ------------- ----------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------- ----------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- : Component Table
-
-## [More Information]{#More_Information .mw-headline}
-
-1. [Nvidia RISC-V
- Story](https://riscv.org/wp-content/uploads/2016/07/Tue1100_Nvidia_RISCV_Story_V2.pdf){.external
- .text rel="nofollow"}
-2. [](){.external .text
- rel="nofollow"}
-3. [Intel Graphics Programmer\'s Reference Manuals
- (PRM)](https://01.org/linuxgraphics/documentation/hardware-specification-prms){.external
- .text rel="nofollow"}
-4. [i915: Hardware Contexts (and some bits about
- batchbuffers)](https://bwidawsk.net/blog/2013/1/i915-hardware-contexts-and-some-bits-about-batchbuffers/){.external
- .text rel="nofollow"}
-5. [i915: The Global GTT Part
- 1](https://bwidawsk.net/blog/2014/6/the-global-gtt-part-1/){.external
- .text rel="nofollow"}
-6. [i915: Aliasing PPGTT Part
- 2](https://bwidawsk.net/blog/2014/6/aliasing-ppgtt-part-2/){.external
- .text rel="nofollow"}
-7. [i915: True PPGTT Part
- 3](https://bwidawsk.net/blog/2014/7/true-ppgtt-part-3/){.external
- .text rel="nofollow"}
-8. [i915: Future PPGTT Part 4 (Dynamic page table allocations, 64 bit
- address space, GPU \"mirroring\", and yeah, something about relocs
- too)](https://bwidawsk.net/blog/2014/7/future-ppgtt-part-4-dynamic-page-table-allocations-64-bit-address-space-gpu-mirroring-and-yeah-something-about-relocs-too/){.external
- .text rel="nofollow"}
-9. [i915: Security of the Intel Graphics Stack - Part 1 -
- Introduction](https://igor-blue.github.io/2021/02/10/graphics-part1.html){.external
- .text rel="nofollow"}
-10. [i915: Security of the Intel Graphics Stack - Part 2 - FW \<-\>
- GuC](https://igor-blue.github.io/2021/02/24/graphics-part2.html){.external
- .text rel="nofollow"}
-11. [i915: An Introduction to Intel GVT-g (with new
- architecture)](https://01.org/sites/default/files/documentation/an_introduction_to_intel_gvt-g_for_external.pdf){.external
- .text rel="nofollow"}
-:::
-
-::: printfooter
-Retrieved from
-\"[https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials\_(SBOM)&oldid=23786](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html){dir="ltr"}\"
-:::
-:::
-
-::: {#catlinks .catlinks .catlinks-allhidden mw="interface"}
-:::
-:::
-:::
-
-::: {#mw-navigation}
-## Navigation menu
-
-::: {#mw-head}
-### Personal tools {#p-personal-label .vector-menu-heading}
-
-::: vector-menu-content
-- [[Log
- in](https://open-iov.org/index.php?title=Special:UserLogin&returnto=GPU+Software+Bill+Of+Materials+%28SBOM%29&returntoquery=oldid%3D23786 "You are encouraged to log in; however, it is not mandatory [o]"){accesskey="o"}]{#pt-login}
-:::
-
-::: {#left-navigation}
-### Namespaces {#p-namespaces-label .vector-menu-heading}
-
-::: vector-menu-content
-- [[Page](index.php/GPU_Software_Bill_Of_Materials_(SBOM).html "View the content page [c]"){accesskey="c"}]{#ca-nstab-main}
-- [[Discussion](https://open-iov.org/index.php?title=Talk:GPU_Software_Bill_Of_Materials_(SBOM)&action=edit&redlink=1 "Discussion about the content page (page does not exist) [t]"){rel="discussion"
- accesskey="t"}]{#ca-talk}
-:::
-
-### Variants [expanded]{.vector-menu-checkbox-expanded} [collapsed]{.vector-menu-checkbox-collapsed} {#p-variants-label .vector-menu-heading}
-
-::: vector-menu-content
-:::
-:::
-
-::: {#right-navigation}
-### Views {#p-views-label .vector-menu-heading}
-
-::: vector-menu-content
-- [[Read](index.php/GPU_Software_Bill_Of_Materials_(SBOM).html)]{#ca-view}
-- [[View
- source](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html "This page is protected.
- You can view its source [e]"){accesskey="e"}]{#ca-viewsource}
-- [[View
- history](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html "Past revisions of this page [h]"){accesskey="h"}]{#ca-history}
-:::
-
-### More [expanded]{.vector-menu-checkbox-expanded} [collapsed]{.vector-menu-checkbox-collapsed} {#p-cactions-label .vector-menu-heading}
-
-::: vector-menu-content
-:::
-
-::: {#p-search .vector-search-box role="search"}
-<div>
-
-### Search
-
-::: {#simpleSearch search-loc="header-navigation"}
-:::
-
-</div>
-:::
-:::
-:::
-
-::: {#mw-panel}
-::: {#p-logo role="banner"}
-[](images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html "Visit the main page"){.mw-wiki-logo}
-:::
-
-### Navigation {#p-navigation-label .vector-menu-heading}
-
-::: vector-menu-content
-- [[Main
- page](images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html "Visit the main page [z]"){accesskey="z"}]{#n-mainpage-description}
-- [[Recent
- changes](https://open-iov.org/index.php/Special:RecentChanges "A list of recent changes in the wiki [r]"){accesskey="r"}]{#n-recentchanges}
-- [[Random
- page](index.php/Special:Random.html "Load a random page [x]"){accesskey="x"}]{#n-randompage}
-- [[Help about
- MediaWiki](https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents)]{#n-help-mediawiki}
-:::
-
-### Tools {#p-tb-label .vector-menu-heading}
-
-::: vector-menu-content
-- [[What links
- here](index.php/Special:WhatLinksHere/GPU_Software_Bill_Of_Materials_(SBOM).html "A list of all wiki pages that link here [j]"){accesskey="j"}]{#t-whatlinkshere}
-- [[Related
- changes](https://open-iov.org/index.php/Special:RecentChangesLinked/GPU_Software_Bill_Of_Materials_(SBOM) "Recent changes in pages linked from this page [k]"){rel="nofollow"
- accesskey="k"}]{#t-recentchangeslinked}
-- [[Special
- pages](index.php/Special:SpecialPages.html "A list of all special pages [q]"){accesskey="q"}]{#t-specialpages}
-- [[Printable
- version](javascript:print(); "Printable version of this page [p]"){rel="alternate"
- accesskey="p"}]{#t-print}
-- [[Permanent
- link](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html "Permanent link to this revision of the page")]{#t-permalink}
-- [[Page
- information](index.php%3Ftitle=GPU_Software_Bill_Of_Materials_(SBOM)&action=info.html "More information about this page")]{#t-info}
-:::
-:::
-:::
-
-- [This page was last edited on 13 June 2023, at
- 14:58.]{#footer-info-lastmod}
-
-```{=html}
-<!-- -->
-```
-- [[Privacy
- policy](https://open-iov.org/index.php/Open-IOV:Privacy_policy "Open-IOV:Privacy policy")]{#footer-places-privacy}
-- [[About
- Open-IOV](index.php/Open-IOV:About.html "Open-IOV:About")]{#footer-places-about}
-- [[Disclaimers](https://open-iov.org/index.php/Open-IOV:General_disclaimer "Open-IOV:General disclaimer")]{#footer-places-disclaimer}
-
-```{=html}
-<!-- -->
-```
-- [[![Powered by
- MediaWiki](resources/assets/poweredby_mediawiki_88x31.png){srcset="resources/assets/poweredby_mediawiki_132x47.png 1.5x, resources/assets/poweredby_mediawiki_176x62.png 2x"
- width="88" height="31"
- loading="lazy"}](https://www.mediawiki.org/)]{#footer-poweredbyico}
+# GPU Software Bill Of Materials (SBOM)
+
+> **This page is superseded.** The previous content was an imported 2023 wiki
+> survey of third-party GPU-virtualization components. The complete,
+> repository-scoped SBOM now lives at:
+
+* **[`SBOM.md`](../SBOM.md)** — human-readable SBOM: primary component,
+ first-party components, bundled third-party components with SHA-256 hashes,
+ archived-documentation provenance, external build/run dependencies,
+ dependency graph, license/redistribution terms, and the NTIA
+ minimum-elements checklist.
+* **[`sbom/open-iov-0.1.0.cdx.json`](../sbom/open-iov-0.1.0.cdx.json)** —
+ machine-readable CycloneDX 1.6 SBOM
+ (serial `urn:uuid:e626c5a1-9697-4546-bb2b-5b4feb58e922`).
+
+The SBOM covers every file tracked in this repository plus the external
+components required to build, run and support it. NVIDIA drivers, GSP
+firmware and CUDA packages are documented but **not distributed** here.
diff --git a/wiki/open-iov.org/index.php/GPU_Software_Bill_Of_Materials_(SBOM).html b/wiki/open-iov.org/index.php/GPU_Software_Bill_Of_Materials_(SBOM).html
index ae9ec87..e2e8423 100644
--- a/wiki/open-iov.org/index.php/GPU_Software_Bill_Of_Materials_(SBOM).html
+++ b/wiki/open-iov.org/index.php/GPU_Software_Bill_Of_Materials_(SBOM).html
@@ -124,13 +124,13 @@ Where possible, this documentation will clearly label dates and versions of obse
<tr>
<td rowspan="2">
</td>
-<td>guest communication daemon
+<td>
</td>
<td rowspan="2">Daemon
</td>
<td>0.1.0
</td>
-<td><a rel="nofollow" class="external text" href="https://">OSS</a>
+<td><a rel="nofollow" class="external text" href="https://github.com/Open-IOV/">OSS</a>
</td>
<td>
</td>
@@ -143,11 +143,11 @@ Where possible, this documentation will clearly label dates and versions of obse
<td>Handles IO to and from guests and the host using Virtio-Serial to handle multiple different guest modules.
</td></tr>
<tr>
-<td>mdev management CLI
+<td>
</td>
<td>1.0
</td>
-<td><a rel="nofollow" class="external text" href="https://">OSS</a>
+<td><a rel="nofollow" class="external text" href="https://github.com/Open-IOV/">OSS</a>
</td>
<td>0.084 MB
</td>
diff --git a/wiki/open-iov.org/index.php/LIME_Is_Mediated_Emulation.html b/wiki/open-iov.org/index.php/LIME_Is_Mediated_Emulation.html
index bc7eb15..dbbd7f5 100644
--- a/wiki/open-iov.org/index.php/LIME_Is_Mediated_Emulation.html
+++ b/wiki/open-iov.org/index.php/LIME_Is_Mediated_Emulation.html
@@ -56,7 +56,7 @@
<h2><span class="mw-headline" id="Design_Goals">Design Goals</span></h2>
<p>LIME aims to provide similar functionality to <a rel="nofollow" class="external text" href="https://winehq.org/">WINE Is Not Emulation</a>, Valve's <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/Proton/">Proton</a> / <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/dxvk">DXVK</a> but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Looking_Glass_KVMFR">KVM Frame Relay</a> (high performance graphics buffer sharing via <a rel="nofollow" class="external text" href="https://www.qemu.org/docs/master/system/devices/ivshmem.html">Inter-VM Shared Memory Device / IVSHMEM</a>).
</p><p>Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/directx">DirectX</a>, or when changes are introduced to the latest version of the Win64 <a rel="nofollow" class="external text" href="https://infogalactic.com/info/Application_binary_interface">ABI</a>.
-</p><p>This functionality is enabled via the use of <a rel="nofollow" class="external text" href="">GPU Virtual Machine</a> (for consumer GPU Virtualization), <a rel="nofollow" class="external text" href="https://virtio-fs.gitlab.io/design.html">VirtIO-FS</a> (for host &lt;-&gt; guest filesystem sharing), <a rel="nofollow" class="external text" href="https://looking-glass.io/">Looking Glass</a> (for host &lt;-&gt; guest shared frame buffer), and <a rel="nofollow" class="external text" href="https://github.com///tree/master//"></a> (for orchestration).
+</p><p>This functionality is enabled via the use of <a rel="nofollow" class="external text" href="">GPU Virtual Machine</a> (for consumer GPU Virtualization), <a rel="nofollow" class="external text" href="https://virtio-fs.gitlab.io/design.html">VirtIO-FS</a> (for host &lt;-&gt; guest filesystem sharing), <a rel="nofollow" class="external text" href="https://looking-glass.io/">Looking Glass</a> (for host &lt;-&gt; guest shared frame buffer), and (for orchestration).
</p>
<h2><span class="mw-headline" id="Use-Cases">Use-Cases</span></h2>
<h3><span class="mw-headline" id="Win64_Subsystem">Win64 Subsystem</span></h3>
diff --git a/wiki/open-iov.org/index.php/Mdev-GPU.html b/wiki/open-iov.org/index.php/Mdev-GPU.html
index de97b4e..c26141e 100644
--- a/wiki/open-iov.org/index.php/Mdev-GPU.html
+++ b/wiki/open-iov.org/index.php/Mdev-GPU.html
@@ -35,7 +35,7 @@
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><p>This page makes use of terms that are defined in the <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Glossary"><i>Open-IOV Glossary</i></a>. If you're curious what a given term means you can check there for a definition.
</p><p><br />
</p><p>This page will be used to document the <b>Mdev-GPU API</b> as well as provide an overview of the internals of the Mdev-GPU package.
-</p><p>Mdev-GPU's source code can be found <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU">here</a>.
+</p><p>Mdev-GPU's source code can be found here.
</p><p>
Module docs can be found <a rel="nofollow" class="external text" href="">here</a>.</p><blockquote><p>An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.
</p><p>This <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a> 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.
@@ -84,17 +84,17 @@ Where possible, this documentation will clearly label dates and versions of obse
<h3><span class="mw-headline" id="Compilation">Compilation</span></h3>
<p>Compiling Mdev-GPU from source is very simple however it can take a long time to complete (10 minutes for existing sources).
-</p><p>If you'd like to compile Mdev-GPU yourself you can do so by cloning <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU">the repo</a> and running the following two commands from within the repository directory:
+</p><p>If you'd like to compile Mdev-GPU yourself you can do so by cloning the repo and running the following two commands from within the repository directory:
</p><p><code>curl -sSL https://get.haskellstack.org/ | sh</code>
</p><p><code>stack install</code>
</p><p>These commands will generate all binaries provided by Mdev-GPU under the path <code>~/.local/bin/</code>.
-</p><p>If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/releases/tag/0.1.0.0">Releases section of the repository on GitHub</a>.
+</p><p>If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the Releases section of the repository on GitHub.
</p>
<h3><span class="mw-headline" id="Installation">Installation</span></h3>
-<p>The binaries compiled on your local machine by Stack in the <code>~/.local/bin/</code> path or downloaded from <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/releases">Releases on GitHub</a> should be copied to <code>/usr/bin/</code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
+<p>The binaries compiled on your local machine by Stack in the <code>~/.local/bin/</code> path or downloaded from Releases on GitHub should be copied to <code>/usr/bin/</code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
</p>
<h3><span class="mw-headline" id="Mdev-GPU_Configuration">Mdev-GPU Configuration</span></h3>
-<p>The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/tree/master/etc">/etc/ folder</a>. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path <code>/etc/</code> on the user's computer.
+<p>The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the /etc/ folder. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path <code>/etc/</code> on the user's computer.
</p>
<h4><span class="mw-headline" id="Systemd">Systemd</span></h4>
<p>GVM/Mdev-GPU exposes several of it's functions as Systemd services.
@@ -102,7 +102,7 @@ Where possible, this documentation will clearly label dates and versions of obse
</p>
<ul><li><b>mdev-post.service</b></li></ul>
<h5><span class="mw-headline" id="mdev-post.service">mdev-post.service</span></h5>
-<p>As the name would suggest <b><a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/blob/master/etc/systemd/system/mdev-post.service">mdev-post.service</a></b> posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at <b><code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml</code></b>. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/blob/9993fd0781ddddfcca2cb9bee6455ea2c024cc23/etc/systemd/system/mdev-post.service#L10">ExecStart= line</a> to specify an alternative path.
+<p>As the name would suggest <b>mdev-post.service</b> posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at <b><code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml</code></b>. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service ExecStart= line to specify an alternative path.
</p>
<h4><span class="mw-headline" id="Mdev-CLI">Mdev-CLI</span></h4>
<p>Configuration for Mdev-GPU can be found in the path <b><code>/etc/gvm/mdev-gpu/</code></b>. This path will by default contain several vendor-specific folders which may include configuration examples for various devices/architectures as well as the file <code><b>generate-vgpu-types.yaml</b></code> which you can configure to specify your desired Virtual GPU (vGPU) / VFIO-Mdev topologies as they are presented in the sysfsdev mdev_bus path and as seen by tools such as <a rel="nofollow" class="external text" href="https://github.com/mdevctl/mdevctl">mdevctl</a>. Once you have configured the available types your liking you can refresh the supported types registered with the <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Virtual_IO_Internals#Mediated_Core">Mediated Core</a> by rebooting your machine or reloading the vendor driver kernel module then restarting <b>mdev-post.service</b> or by invoking <b>mdev-cli</b>.
diff --git a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html
index 17806b8..393499f 100644
--- a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html
+++ b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=edit.html
@@ -91,19 +91,19 @@ Where possible, this documentation will clearly label dates and versions of obse
|The Mediated Core driver provides a common interface for mediated device management that can be used by drivers of different devices. It is an IOMMU/device-agnostic framework for exposing direct device access to user space in a secure, IOMMU-protected environment (based on VFIO).
|-
| rowspan="2" |
-|guest communication daemon
+|
| rowspan="2" |Daemon
|0.1.0
-|[https:// OSS]
+|[https://github.com/Open-IOV/ OSS]
|
|[ ]
|2023.02.08
|[https://fedoraproject.org/wiki/Features/VirtioSerial Virtio-Serial], CLI
|Handles IO to and from guests and the host using Virtio-Serial to handle multiple different guest modules.
|-
-|mdev management CLI
+|
|1.0
-|[https:// OSS]
+|[https://github.com/Open-IOV/ OSS]
|0.084 MB
|[ ]
|2023.01.06
diff --git a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html
index 1a36f7b..918c647 100644
--- a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html
+++ b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&action=history.html
@@ -91,7 +91,7 @@ Legend: <strong>(cur)</strong> = difference with latest revision, <strong>(prev)
<li data-mw-revid="5576" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=23786&amp;oldid=5576" title="GPU Software Bill Of Materials (SBOM)">cur</a></span><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=5576&amp;oldid=5574" title="GPU Software Bill Of Materials (SBOM)">prev</a></span></span><input type="radio" value="5576" name="oldid" id="mw-oldid-5576" /><input type="radio" value="5576" name="diff" id="mw-diff-5576" /> <a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;oldid=5576" class="mw-changeslist-date" title="GPU Software Bill Of Materials (SBOM)">23:53, 9 December 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="2588">2,588 bytes</span> <strong dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="2,588 bytes after change">+1,574</strong>‎ <span class="mw-changeslist-separator"></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
<li data-mw-revid="5574" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=23786&amp;oldid=5574" title="GPU Software Bill Of Materials (SBOM)">cur</a></span><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=5574&amp;oldid=5573" title="GPU Software Bill Of Materials (SBOM)">prev</a></span></span><input type="radio" value="5574" name="oldid" id="mw-oldid-5574" /><input type="radio" value="5574" name="diff" id="mw-diff-5574" /> <a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;oldid=5574" class="mw-changeslist-date" title="GPU Software Bill Of Materials (SBOM)">23:41, 9 December 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="1014">1,014 bytes</span> <span dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="1,014 bytes after change">+35</span>‎ <span class="mw-changeslist-separator"></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
<li data-mw-revid="5573" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=23786&amp;oldid=5573" title="GPU Software Bill Of Materials (SBOM)">cur</a></span><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=5573&amp;oldid=5569" title="GPU Software Bill Of Materials (SBOM)">prev</a></span></span><input type="radio" value="5573" name="oldid" id="mw-oldid-5573" /><input type="radio" value="5573" name="diff" id="mw-diff-5573" /> <a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;oldid=5573" class="mw-changeslist-date" title="GPU Software Bill Of Materials (SBOM)">23:40, 9 December 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="979">979 bytes</span> <span dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="979 bytes after change">+41</span>‎ <span class="mw-changeslist-separator"></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
-<li data-mw-revid="5569" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=23786&amp;oldid=5569" title="GPU Software Bill Of Materials (SBOM)">cur</a></span><span>prev</span></span><input type="radio" value="5569" name="oldid" id="mw-oldid-5569" /><input type="radio" value="5569" name="diff" id="mw-diff-5569" /> <a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;oldid=5569" class="mw-changeslist-date" title="GPU Software Bill Of Materials (SBOM)">23:09, 9 December 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="938">938 bytes</span> <strong dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="938 bytes after change">+938</strong>‎ <span class="mw-changeslist-separator"></span> <span class="comment comment--without-parentheses">Created page with &quot;This page will keep a running list of components used to achieve GPU Virtualization. {| class=&quot;wikitable&quot; |+Component Table !Vendor !Component !Description !Version !OSS or Blob !Release Date !Notes |- | |mdev management CLI |Daemon |1.0 |OSS | | |- | |mdev management daemon |Daemon |1.0 |OSS | | |- |Intel |GuC μOS |Firmware |Unknown |Blob | | |- |Intel |HuC |Firmware |Unknown |Blob | | |- |Intel |i915 (with SR-IOV patches) |Driver |5.10 |OSS | | |- |Nvidia |OpenRM |Driver |...&quot;</span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
+<li data-mw-revid="5569" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;diff=23786&amp;oldid=5569" title="GPU Software Bill Of Materials (SBOM)">cur</a></span><span>prev</span></span><input type="radio" value="5569" name="oldid" id="mw-oldid-5569" /><input type="radio" value="5569" name="diff" id="mw-diff-5569" /> <a href="https://open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&amp;oldid=5569" class="mw-changeslist-date" title="GPU Software Bill Of Materials (SBOM)">23:09, 9 December 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="938">938 bytes</span> <strong dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="938 bytes after change">+938</strong>‎ <span class="mw-changeslist-separator"></span> <span class="comment comment--without-parentheses">Created page with &quot;This page will keep a running list of components used to achieve GPU Virtualization. {| class=&quot;wikitable&quot; |+Component Table !Vendor !Component !Description !Version !OSS or Blob !Release Date !Notes |- | | |Daemon |1.0 |OSS | | |- | |mdev management daemon |Daemon |1.0 |OSS | | |- |Intel |GuC μOS |Firmware |Unknown |Blob | | |- |Intel |HuC |Firmware |Unknown |Blob | | |- |Intel |i915 (with SR-IOV patches) |Driver |5.10 |OSS | | |- |Nvidia |OpenRM |Driver |...&quot;</span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
</ul>
<div class="mw-history-compareselectedversions"><input class="historysubmit mw-history-compareselectedversions-button mw-ui-button" title="See the differences between the two selected revisions of this page [v]" accesskey="v" type="submit" value="Compare selected revisions"/>
</div></form>
diff --git a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html
index 413b63a..7f70546 100644
--- a/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html
+++ b/wiki/open-iov.org/index.php?title=GPU_Software_Bill_Of_Materials_(SBOM)&oldid=23786.html
@@ -125,13 +125,13 @@ Where possible, this documentation will clearly label dates and versions of obse
<tr>
<td rowspan="2">
</td>
-<td>guest communication daemon
+<td>
</td>
<td rowspan="2">Daemon
</td>
<td>0.1.0
</td>
-<td><a rel="nofollow" class="external text" href="https://">OSS</a>
+<td><a rel="nofollow" class="external text" href="https://github.com/Open-IOV/">OSS</a>
</td>
<td>
</td>
@@ -144,11 +144,11 @@ Where possible, this documentation will clearly label dates and versions of obse
<td>Handles IO to and from guests and the host using Virtio-Serial to handle multiple different guest modules.
</td></tr>
<tr>
-<td>mdev management CLI
+<td>
</td>
<td>1.0
</td>
-<td><a rel="nofollow" class="external text" href="https://">OSS</a>
+<td><a rel="nofollow" class="external text" href="https://github.com/Open-IOV/">OSS</a>
</td>
<td>0.084 MB
</td>
diff --git a/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&action=edit.html b/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&action=edit.html
index 06240c3..49f731c 100644
--- a/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&action=edit.html
+++ b/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&action=edit.html
@@ -47,7 +47,7 @@ LIME aims to provide similar functionality to [https://winehq.org/ WINE Is Not E
Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of [https://docs.microsoft.com/en-us/windows/win32/directx DirectX], or when changes are introduced to the latest version of the Win64 [https://infogalactic.com/info/Application_binary_interface ABI].
-This functionality is enabled via the use of [ GPU Virtual Machine] (for consumer GPU Virtualization), [https://virtio-fs.gitlab.io/design.html VirtIO-FS] (for host &lt;-> guest filesystem sharing), [https://looking-glass.io/ Looking Glass] (for host &lt;-> guest shared frame buffer), and [https://github.com///tree/master// ] (for orchestration).
+This functionality is enabled via the use of [ GPU Virtual Machine] (for consumer GPU Virtualization), [https://virtio-fs.gitlab.io/design.html VirtIO-FS] (for host &lt;-> guest filesystem sharing), [https://looking-glass.io/ Looking Glass] (for host &lt;-> guest shared frame buffer), and [ ] (for orchestration).
== Use-Cases ==
diff --git a/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786.html b/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786.html
index 213e0e9..70628b0 100644
--- a/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786.html
+++ b/wiki/open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786.html
@@ -57,7 +57,7 @@
<h2><span class="mw-headline" id="Design_Goals">Design Goals</span></h2>
<p>LIME aims to provide similar functionality to <a rel="nofollow" class="external text" href="https://winehq.org/">WINE Is Not Emulation</a>, Valve's <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/Proton/">Proton</a> / <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/dxvk">DXVK</a> but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Looking_Glass_KVMFR">KVM Frame Relay</a> (high performance graphics buffer sharing via <a rel="nofollow" class="external text" href="https://www.qemu.org/docs/master/system/devices/ivshmem.html">Inter-VM Shared Memory Device / IVSHMEM</a>).
</p><p>Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/directx">DirectX</a>, or when changes are introduced to the latest version of the Win64 <a rel="nofollow" class="external text" href="https://infogalactic.com/info/Application_binary_interface">ABI</a>.
-</p><p>This functionality is enabled via the use of <a rel="nofollow" class="external text" href="">GPU Virtual Machine</a> (for consumer GPU Virtualization), <a rel="nofollow" class="external text" href="https://virtio-fs.gitlab.io/design.html">VirtIO-FS</a> (for host &lt;-&gt; guest filesystem sharing), <a rel="nofollow" class="external text" href="https://looking-glass.io/">Looking Glass</a> (for host &lt;-&gt; guest shared frame buffer), and <a rel="nofollow" class="external text" href="https://github.com///tree/master//"></a> (for orchestration).
+</p><p>This functionality is enabled via the use of <a rel="nofollow" class="external text" href="">GPU Virtual Machine</a> (for consumer GPU Virtualization), <a rel="nofollow" class="external text" href="https://virtio-fs.gitlab.io/design.html">VirtIO-FS</a> (for host &lt;-&gt; guest filesystem sharing), <a rel="nofollow" class="external text" href="https://looking-glass.io/">Looking Glass</a> (for host &lt;-&gt; guest shared frame buffer), and (for orchestration).
</p>
<h2><span class="mw-headline" id="Use-Cases">Use-Cases</span></h2>
<h3><span class="mw-headline" id="Win64_Subsystem">Win64 Subsystem</span></h3>
diff --git a/wiki/open-iov.org/index.php?title=Mdev-GPU&action=edit.html b/wiki/open-iov.org/index.php?title=Mdev-GPU&action=edit.html
index 1e1f677..bbdde77 100644
--- a/wiki/open-iov.org/index.php?title=Mdev-GPU&action=edit.html
+++ b/wiki/open-iov.org/index.php?title=Mdev-GPU&action=edit.html
@@ -46,7 +46,7 @@
This page will be used to document the '''Mdev-GPU API''' as well as provide an overview of the internals of the Mdev-GPU package.
-Mdev-GPU's source code can be found [https://github.com//Mdev-GPU here].
+Mdev-GPU's source code can be found [ here].
Module docs can be found [ here].&lt;blockquote>An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.
@@ -57,7 +57,7 @@ Where possible, this documentation will clearly label dates and versions of obse
=== Compilation ===
Compiling Mdev-GPU from source is very simple however it can take a long time to complete (10 minutes for existing sources).
-If you'd like to compile Mdev-GPU yourself you can do so by cloning [https://github.com//Mdev-GPU the repo] and running the following two commands from within the repository directory:
+If you'd like to compile Mdev-GPU yourself you can do so by cloning [ the repo] and running the following two commands from within the repository directory:
&lt;code>curl -sSL &lt;nowiki>https://get.haskellstack.org/&lt;/nowiki> | sh&lt;/code>
@@ -65,13 +65,13 @@ If you'd like to compile Mdev-GPU yourself you can do so by cloning [https://git
These commands will generate all binaries provided by Mdev-GPU under the path &lt;code>~/.local/bin/&lt;/code>.
-If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the [https://github.com//Mdev-GPU/releases/tag/0.1.0.0 Releases section of the repository on GitHub].
+If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the [ Releases section of the repository on GitHub].
=== Installation ===
-The binaries compiled on your local machine by Stack in the &lt;code>~/.local/bin/&lt;/code> path or downloaded from [https://github.com//Mdev-GPU/releases Releases on GitHub] should be copied to &lt;code>/usr/bin/&lt;/code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
+The binaries compiled on your local machine by Stack in the &lt;code>~/.local/bin/&lt;/code> path or downloaded from [ Releases on GitHub] should be copied to &lt;code>/usr/bin/&lt;/code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
=== Mdev-GPU Configuration ===
-The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the [https://github.com//Mdev-GPU/tree/master/etc /etc/ folder]. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path &lt;code>/etc/&lt;/code> on the user's computer.
+The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the [ /etc/ folder]. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path &lt;code>/etc/&lt;/code> on the user's computer.
==== Systemd ====
GVM/Mdev-GPU exposes several of it's functions as Systemd services.
@@ -81,7 +81,7 @@ As of the 0.1.0.0 release the following Systemd services are available:
* '''mdev-post.service'''
===== mdev-post.service =====
-As the name would suggest '''[https://github.com//Mdev-GPU/blob/master/etc/systemd/system/mdev-post.service mdev-post.service]''' posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at '''&lt;code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml&lt;/code>'''. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service [https://github.com//Mdev-GPU/blob/9993fd0781ddddfcca2cb9bee6455ea2c024cc23/etc/systemd/system/mdev-post.service#L10 ExecStart= line] to specify an alternative path.
+As the name would suggest '''[ mdev-post.service]''' posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at '''&lt;code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml&lt;/code>'''. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service [ ExecStart= line] to specify an alternative path.
==== Mdev-CLI ====
Configuration for Mdev-GPU can be found in the path '''&lt;code>/etc/gvm/mdev-gpu/&lt;/code>'''. This path will by default contain several vendor-specific folders which may include configuration examples for various devices/architectures as well as the file &lt;code>'''generate-vgpu-types.yaml'''&lt;/code> which you can configure to specify your desired Virtual GPU (vGPU) / VFIO-Mdev topologies as they are presented in the sysfsdev mdev_bus path and as seen by tools such as [https://github.com/mdevctl/mdevctl mdevctl]. Once you have configured the available types your liking you can refresh the supported types registered with the [https://open-iov.org/index.php/Virtual_IO_Internals#Mediated_Core Mediated Core] by rebooting your machine or reloading the vendor driver kernel module then restarting '''mdev-post.service''' or by invoking '''mdev-cli'''.
diff --git a/wiki/open-iov.org/index.php?title=Mdev-GPU&action=history.html b/wiki/open-iov.org/index.php?title=Mdev-GPU&action=history.html
index 08797b2..aab58b8 100644
--- a/wiki/open-iov.org/index.php?title=Mdev-GPU&action=history.html
+++ b/wiki/open-iov.org/index.php?title=Mdev-GPU&action=history.html
@@ -70,7 +70,7 @@ Legend: <strong>(cur)</strong> = difference with latest revision, <strong>(prev)
<li data-mw-revid="725" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=23740&amp;oldid=725" title="Mdev-GPU">cur</a></span><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=725&amp;oldid=724" title="Mdev-GPU">prev</a></span></span><input type="radio" value="725" name="oldid" id="mw-oldid-725" /><input type="radio" value="725" name="diff" id="mw-diff-725" /> <a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;oldid=725" class="mw-changeslist-date" title="Mdev-GPU">18:45, 2 August 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="1803">1,803 bytes</span> <span dir="ltr" class="mw-plusminus-neg mw-diff-bytes" title="1,803 bytes after change">−12</span>‎ <span class="mw-changeslist-separator"></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
<li data-mw-revid="724" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=23740&amp;oldid=724" title="Mdev-GPU">cur</a></span><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=724&amp;oldid=721" title="Mdev-GPU">prev</a></span></span><input type="radio" value="724" name="oldid" id="mw-oldid-724" /><input type="radio" value="724" name="diff" id="mw-diff-724" /> <a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;oldid=724" class="mw-changeslist-date" title="Mdev-GPU">18:45, 2 August 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="1815">1,815 bytes</span> <strong dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="1,815 bytes after change">+652</strong>‎ <span class="mw-changeslist-separator"></span> <span class="comment comment--without-parentheses"><span dir="auto"><span class="autocomment"><a href="index.php/Mdev-GPU.html#Installation" title="Mdev-GPU">→‎Installation</a></span></span></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
<li data-mw-revid="721" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=23740&amp;oldid=721" title="Mdev-GPU">cur</a></span><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=721&amp;oldid=713" title="Mdev-GPU">prev</a></span></span><input type="radio" value="721" name="oldid" id="mw-oldid-721" /><input type="radio" value="721" name="diff" id="mw-diff-721" /> <a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;oldid=721" class="mw-changeslist-date" title="Mdev-GPU">17:13, 2 August 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="1163">1,163 bytes</span> <strong dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="1,163 bytes after change">+807</strong>‎ <span class="mw-changeslist-separator"></span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
-<li data-mw-revid="713" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=23740&amp;oldid=713" title="Mdev-GPU">cur</a></span><span>prev</span></span><input type="radio" value="713" name="oldid" id="mw-oldid-713" /><input type="radio" value="713" name="diff" id="mw-diff-713" /> <a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;oldid=713" class="mw-changeslist-date" title="Mdev-GPU">16:01, 25 July 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="356">356 bytes</span> <span dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="356 bytes after change">+356</span>‎ <span class="mw-changeslist-separator"></span> <span class="comment comment--without-parentheses">Created page with &quot;This page will be used to document the internals of the Mdev-GPU package. Currently Mdev-GPU supports registering mediated callbacks with the Mediated Core and the creation of arbitrary mdev devices. Mdev-GPU&#039;s source code can be found [https://github.com//Mdev-GPU here]. Module docs can be found [ here].&quot;</span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
+<li data-mw-revid="713" class="mw-tag-visualeditor"><span class="mw-history-histlinks mw-changeslist-links"><span><a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;diff=23740&amp;oldid=713" title="Mdev-GPU">cur</a></span><span>prev</span></span><input type="radio" value="713" name="oldid" id="mw-oldid-713" /><input type="radio" value="713" name="diff" id="mw-diff-713" /> <a href="https://open-iov.org/index.php?title=Mdev-GPU&amp;oldid=713" class="mw-changeslist-date" title="Mdev-GPU">16:01, 25 July 2022</a>‎ <span class='history-user'><a href="./index.php%3Ftitle=User:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-userlink" title="User:Arthur (page does not exist)"><bdi>Arthur</bdi></a> <span class="mw-usertoollinks mw-changeslist-links"><span><a href="./index.php%3Ftitle=User_talk:Arthur&amp;action=edit&amp;redlink=1.html" class="new mw-usertoollinks-talk" title="User talk:Arthur (page does not exist)">talk</a></span> <span><a href="index.php/Special:Contributions/Arthur.html" class="mw-usertoollinks-contribs" title="Special:Contributions/Arthur">contribs</a></span></span></span>‎ <span class="mw-changeslist-separator"></span> <span class="history-size mw-diff-bytes" data-mw-bytes="356">356 bytes</span> <span dir="ltr" class="mw-plusminus-pos mw-diff-bytes" title="356 bytes after change">+356</span>‎ <span class="mw-changeslist-separator"></span> <span class="comment comment--without-parentheses">Created page with &quot;This page will be used to document the internals of the Mdev-GPU package. Currently Mdev-GPU supports registering mediated callbacks with the Mediated Core and the creation of arbitrary mdev devices. Mdev-GPU&#039;s source code can be found [ here]. Module docs can be found [ here].&quot;</span> <span class="mw-tag-markers"><a href="https://open-iov.org/index.php/Special:Tags" title="Special:Tags">Tag</a>: <span class="mw-tag-marker mw-tag-marker-visualeditor"><a href="https://open-iov.org/index.php?title=Open-IOV:VisualEditor&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:VisualEditor (page does not exist)">Visual edit</a></span></span></li>
</ul>
<div class="mw-history-compareselectedversions"><input class="historysubmit mw-history-compareselectedversions-button mw-ui-button" title="See the differences between the two selected revisions of this page [v]" accesskey="v" type="submit" value="Compare selected revisions"/>
</div></form>
diff --git a/wiki/open-iov.org/index.php?title=Mdev-GPU&oldid=23740.html b/wiki/open-iov.org/index.php?title=Mdev-GPU&oldid=23740.html
index 512ff16..6d9b197 100644
--- a/wiki/open-iov.org/index.php?title=Mdev-GPU&oldid=23740.html
+++ b/wiki/open-iov.org/index.php?title=Mdev-GPU&oldid=23740.html
@@ -36,7 +36,7 @@
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><p>This page makes use of terms that are defined in the <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Glossary"><i>Open-IOV Glossary</i></a>. If you're curious what a given term means you can check there for a definition.
</p><p><br />
</p><p>This page will be used to document the <b>Mdev-GPU API</b> as well as provide an overview of the internals of the Mdev-GPU package.
-</p><p>Mdev-GPU's source code can be found <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU">here</a>.
+</p><p>Mdev-GPU's source code can be found here.
</p><p>
Module docs can be found <a rel="nofollow" class="external text" href="">here</a>.</p><blockquote><p>An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.
</p><p>This <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a> 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.
@@ -85,17 +85,17 @@ Where possible, this documentation will clearly label dates and versions of obse
<h3><span class="mw-headline" id="Compilation">Compilation</span></h3>
<p>Compiling Mdev-GPU from source is very simple however it can take a long time to complete (10 minutes for existing sources).
-</p><p>If you'd like to compile Mdev-GPU yourself you can do so by cloning <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU">the repo</a> and running the following two commands from within the repository directory:
+</p><p>If you'd like to compile Mdev-GPU yourself you can do so by cloning the repo and running the following two commands from within the repository directory:
</p><p><code>curl -sSL https://get.haskellstack.org/ | sh</code>
</p><p><code>stack install</code>
</p><p>These commands will generate all binaries provided by Mdev-GPU under the path <code>~/.local/bin/</code>.
-</p><p>If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/releases/tag/0.1.0.0">Releases section of the repository on GitHub</a>.
+</p><p>If you would prefer not to wait for the program to compile you can find pre-compiled x86_64 binaries under the Releases section of the repository on GitHub.
</p>
<h3><span class="mw-headline" id="Installation">Installation</span></h3>
-<p>The binaries compiled on your local machine by Stack in the <code>~/.local/bin/</code> path or downloaded from <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/releases">Releases on GitHub</a> should be copied to <code>/usr/bin/</code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
+<p>The binaries compiled on your local machine by Stack in the <code>~/.local/bin/</code> path or downloaded from Releases on GitHub should be copied to <code>/usr/bin/</code>. This can be accomplished both via install script (currently testing in ) or via management layer-agnostic package.
</p>
<h3><span class="mw-headline" id="Mdev-GPU_Configuration">Mdev-GPU Configuration</span></h3>
-<p>The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/tree/master/etc">/etc/ folder</a>. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path <code>/etc/</code> on the user's computer.
+<p>The Mdev-GPU repository provides Systemd service and example configurations for Mdev-CLI in the /etc/ folder. On installation the directories &amp; files contained in the repository's /etc/ folder should be copied to the absolute path <code>/etc/</code> on the user's computer.
</p>
<h4><span class="mw-headline" id="Systemd">Systemd</span></h4>
<p>GVM/Mdev-GPU exposes several of it's functions as Systemd services.
@@ -103,7 +103,7 @@ Where possible, this documentation will clearly label dates and versions of obse
</p>
<ul><li><b>mdev-post.service</b></li></ul>
<h5><span class="mw-headline" id="mdev-post.service">mdev-post.service</span></h5>
-<p>As the name would suggest <b><a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/blob/master/etc/systemd/system/mdev-post.service">mdev-post.service</a></b> posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at <b><code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml</code></b>. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service <a rel="nofollow" class="external text" href="https://github.com//Mdev-GPU/blob/9993fd0781ddddfcca2cb9bee6455ea2c024cc23/etc/systemd/system/mdev-post.service#L10">ExecStart= line</a> to specify an alternative path.
+<p>As the name would suggest <b>mdev-post.service</b> posts the GPU(s) in a state where they are ready to be virtualized. When the service is invoked the mdev-cli util registers Mdev callbacks and supported mediated device (Mdev) types with the Mediated Core according to the user's specified configuration at <b><code>/etc/gvm/mdev-gpu/generate-vgpu-types.yaml</code></b>. If you'd like to place your configuration file elsewhere and still have your configuration invoked on boot you can edit the systemd service ExecStart= line to specify an alternative path.
</p>
<h4><span class="mw-headline" id="Mdev-CLI">Mdev-CLI</span></h4>
<p>Configuration for Mdev-GPU can be found in the path <b><code>/etc/gvm/mdev-gpu/</code></b>. This path will by default contain several vendor-specific folders which may include configuration examples for various devices/architectures as well as the file <code><b>generate-vgpu-types.yaml</b></code> which you can configure to specify your desired Virtual GPU (vGPU) / VFIO-Mdev topologies as they are presented in the sysfsdev mdev_bus path and as seen by tools such as <a rel="nofollow" class="external text" href="https://github.com/mdevctl/mdevctl">mdevctl</a>. Once you have configured the available types your liking you can refresh the supported types registered with the <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Virtual_IO_Internals#Mediated_Core">Mediated Core</a> by rebooting your machine or reloading the vendor driver kernel module then restarting <b>mdev-post.service</b> or by invoking <b>mdev-cli</b>.