diff options
| author | Open-IOV <dev@open-iov.org> | 2026-09-23 05:44:08 -0400 |
|---|---|---|
| committer | Open-IOV <dev@open-iov.org> | 2026-09-23 05:46:43 -0400 |
| commit | 68cdd7728a7cc6715bbbff7decfe2b11c3bdf558 (patch) | |
| tree | 3dc8ce2e6af313a97ec6852f5c663a9a93665d2e /LICENSE | |
| download | open-iov-68cdd7728a7cc6715bbbff7decfe2b11c3bdf558.tar.gz open-iov-68cdd7728a7cc6715bbbff7decfe2b11c3bdf558.zip | |
Open-IOV: initial public release
Open-IOV virtualizes NVIDIA GPUs so that unmodified guest drivers run with
real GPU functionality - CUDA first, 3D and video to follow - on unmodified
hosts, without a proprietary vGPU license and without patching any driver,
firmware or hypervisor.
Core principle: emulate the interface, pass through the work.
kernel/ open-iov-vfio.ko - host VFIO mdev driver: virtual GPU device
(PCI config space, BAR shadows, MSI-X), GSP boot emulation,
GSP-RM message-queue/RPC emulation, memory model (GPU-VA to
guest-PA discovery) and the semaphore-completion service that
advances guest UVM progress.
userspace/ libiov.so management API and examples.
tools/ guest diagnostics, firmware analysis wrappers, RM probes.
scripts/ stack manager, VM harness, build/load/test automation.
config/ hardware/version profiles (the portability surface).
docs/ documentation tree - start at docs/README.md.
wiki/ long-form firmware and protocol deep dives.
Status: initialization works end to end for a stock 570.144 Linux guest on
Turing (TU104): driver probe, nvidia-smi, the full GSP-RM control battery,
object creation and the early CUDA/UVM start-up path. GPU work forwarding -
the step that makes CUDA kernels execute on real hardware - is the active
work item; see docs/04-implementation/01-known-knowns-and-unknowns.md.
License: BSD-3-Clause for the project; GPL-2.0 for kernel modules that link
GPL-only kernel interfaces. See LICENSE and docs/09-reference/legal-and-licensing.md.
Diffstat (limited to 'LICENSE')
| -rw-r--r-- | LICENSE | 76 |
1 files changed, 76 insertions, 0 deletions
@@ -0,0 +1,76 @@ +BSD 3-Clause License + +Copyright (c) 2026, The Open-IOV Project +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- + +Note on the license change +========================== + +Open-IOV is distributed under the BSD 3-Clause License. This is a deliberate +choice for a project whose mission is *adversarial interoperability*: the +widest possible reuse, including in commercial products, is a feature, not an +accident. A permissive license lets hardware vendors, hypervisor vendors, +integrators and other open source projects adopt, ship and co-develop this +software without license friction, which is exactly how an independent, +durable IP block for GPU virtualization should spread. + +Contributions are accepted under the same terms (inbound = outbound). + +Mixed licensing: kernel modules are GPL-2.0 +=========================================== + +The Linux kernel exports many of the interfaces this project depends on +(VFIO, mdev, IOMMU, workqueue and DMA internals) under `EXPORT_SYMBOL_GPL`. +To use those symbols legally, **kernel modules may be licensed GPL-2.0**. +The policy is therefore: + +| Component | License | Why | +|---|---|---| +| `kernel/**` (e.g. `open-iov-vfio.ko`) | **GPL-2.0** (`MODULE_LICENSE("GPL v2")`) | Uses GPL-only kernel exports (VFIO/mdev/IOMMU). | +| `userspace/**`, `tools/**`, `scripts/**`, `config/**`, `docs/**` | **BSD-3-Clause** | No GPL-only interfaces; maximize reuse. | +| Third-party imports (vendor firmware, submodules, study material) | their own terms | Used for interoperability study; not relicensed. | + +**Per-file SPDX identifiers always govern.** If a file carries +`SPDX-License-Identifier: GPL-2.0` it is GPL-2.0, even if it lives outside +`kernel/`. Otherwise the project default is BSD-3-Clause. + +This split is intentional and stable: it gives the kernel side a clean legal +footing and keeps every reusable, vendor-facing, embeddable part of the +project permissive. + +Third-party components +====================== + +* Vendor firmware images and third-party software referenced by this project + are **not** covered by this license; they keep their own terms and are used + for interoperability study. See `docs/09-reference/legal-and-licensing.md`. +* Linux kernel headers are used under their own license (GPL-2.0) and are not + redistributed by this project. + |
