Support GPU Passthrough to VMs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- linux, rust
- Área
- api, infrastructure, operating-systems
Línea de trabajo
Comienza revisando la API y el modelo existentes de FeOS VM; después, sigue el backend del hipervisor responsable de la configuración de dispositivos. Define la GPU PCIe-address API, la validación, el manejo de IOMMU/vfio-pci y el enfoque para las pruebas de integración; se considera terminado cuando las VMs con una y varias GPUs exponen dispositivos utilizables al guest y los dispositivos no disponibles fallan de forma segura.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
This work item enables FeOS to attach one or more physical GPUs directly to a FeOS-managed Virtual Machine (VM) using PCIe passthrough.
This functionality is critical for supporting GPU-accelerated workloads such as Artificial Intelligence (AI), Machine Learning (ML), scientific computing, and high-performance graphics within VMs. The implementation will extend the VM API to allow specifying GPUs by their host PCIe address.
Scope
✅ In Scope
- Extend the FeOS VM API to allow specifying one or more GPUs via their host PCIe address for attachment to a VM.
- Implement the backend logic for PCIe passthrough of a complete physical GPU (e.g., using IOMMU /
vfio-pci). - Ensure the guest VM can recognize the attached GPU and that appropriate vendor drivers (e.g., NVIDIA, AMD) can be installed and utilized.
- Support for passing through multiple GPUs to a single VM.
❌ Out of Scope
- GPU virtualization technologies like NVIDIA vGPU or AMD MxGPU (SR-IOV). This issue focuses exclusively on full device passthrough.
- Live migration of VMs with attached GPUs.
- Dynamic hot-plugging of GPUs. GPUs must be attached when the VM is created or started.
- Host-side GPU driver installation and configuration. This issue assumes the host is correctly prepared for passthrough.
Responsible Areas
- FeOS VM Management
- FeOS API
Contributors
- @guvenc
- @MalteJ
Acceptance Criteria
-
API
- The VM API is extended to accept a list of PCIe addresses for GPUs in the VM specification.
- The API performs validation to ensure the specified PCIe devices exist and are available for passthrough.
-
VM Runtime & Guest OS
- A VM can be successfully launched with one or more GPUs passed through to it.
- The guest operating system correctly identifies the hardware of the passed-through GPU(s) (e.g., visible in
lspci). - Vendor-specific drivers (e.g., NVIDIA driver) can be installed successfully inside the guest OS.
- A GPU-accelerated application or utility (e.g.,
nvidia-smi, a CUDA/OpenCL sample) runs successfully within the VM and can access the GPU's capabilities. - The FeOS host correctly isolates the device, preventing host-level drivers from claiming it while it is assigned to a VM.
Action Items
- Design the API extension in the VM model for specifying GPU devices.
- Implement the backend logic to configure the hypervisor for GPU passthrough (e.g., managing IOMMU groups, binding to
vfio-pci). - Ensure that all functions of a GPU (e.g., graphics and audio components on the same PCIe card) are passed through together.
- Add robust validation and error handling for cases where a GPU is unavailable or passthrough fails.
- Create integration tests that:
- Launch a VM with a single GPU and verify its functionality in the guest.
- Launch a VM with multiple GPUs and verify their functionality in the guest.
- Lenguaje dominante
- Rust
- Estrellas
- 24
- Forks
- 9
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ironcore-dev/FeOS
-
area/operatingsystem
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ironcore-dev/FeOS#103 ·
-
area/operatingsystem
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ironcore-dev/FeOS#107 ·
-
Improve Host ManagementQuizá libre de nuevo @friegger la tomó hace 286 días y no hay ningún pull request abierto. Abiertoarea/operatingsystem
ironcore-dev/FeOS#108 · 1 asignado ·
-
area/operatingsystem
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ironcore-dev/FeOS#109 ·
-
area/operatingsystem
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
ironcore-dev/FeOS#94 ·
Todos los issues de ironcore-dev/FeOS
Issues similares
-
bug easy good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
lacs-project/sysknife#659 ·
Los mantenedores suelen responder en 2 días
-
Document multi-value claims with rowBoundaries operator:in (and their per-record application)Abiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
registrystack/registry-stack#2431 ·
Los mantenedores suelen responder en 1 día
-
contribution
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
farion1231/cc-switch#8863 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
dioxus-desktop on macOS: Finder file drops never fire `ondrop` — `dragenter` is not cancelledAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
DioxusLabs/dioxus#6006 ·
Los mantenedores suelen responder en 1 día