Summary
This work item enables FeOS to attach NVMe devices, exposed to the host as PCIe Virtual Functions (VFs), directly to a FeOS-managed Virtual Machine (VM). This allows a remote NVMe device, connected via a Bluefield DPU using NVMe-oF (RoCEv2), to be used as a high-performance boot or storage drive for a VM.
The core task is to extend the VM management API and backend to support PCIe device passthrough, identifying the NVMe device by its PCIe address. The scope also includes support for dynamically attaching and detaching these devices while the VM is running (hot-plugging).
Scope
✅ In Scope
- Extend the FeOS VM API to allow specifying one or more NVMe devices via their host PCIe address during VM creation/modification.
- Implement the backend logic for PCIe passthrough of an NVMe VF to a guest VM (e.g., using IOMMU /
vfio-pci).
- Ensure the guest VM can recognize and utilize the passed-through NVMe device.
- Support using the device as both a primary boot drive and a secondary storage volume.
- Support for dynamic hot-plug and hot-unplug of NVMe VFs to/from a running VM.
❌ Out of Scope
- Configuration of the Bluefield DPU or the NVMe-oF fabric itself. This issue assumes the NVMe VF is already present and visible on the FeOS host.
- Live migration of VMs with attached PCIe passthrough devices.
Responsible Areas
- FeOS VM Management
- FeOS API
Contributors
Acceptance Criteria
-
API
-
VM Runtime (Static Attachment)
-
Dynamic Attachment (Hot-plug)
Action Items
Summary
This work item enables FeOS to attach NVMe devices, exposed to the host as PCIe Virtual Functions (VFs), directly to a FeOS-managed Virtual Machine (VM). This allows a remote NVMe device, connected via a Bluefield DPU using NVMe-oF (RoCEv2), to be used as a high-performance boot or storage drive for a VM.
The core task is to extend the VM management API and backend to support PCIe device passthrough, identifying the NVMe device by its PCIe address. The scope also includes support for dynamically attaching and detaching these devices while the VM is running (hot-plugging).
Scope
✅ In Scope
vfio-pci).❌ Out of Scope
Responsible Areas
Contributors
Acceptance Criteria
API
pci_devices) in the VM specification to accept a list of PCIe addresses.VM Runtime (Static Attachment)
Dynamic Attachment (Hot-plug)
Action Items
vfio-pcidriver).