Guidance on Virtualizing Intel® DSA Devices for Multiple VMs
- Dominant language
- C
- Stars
- 72
- Forks
- 36
- PR merge metrics
- No merged PRs in 30d
Description
I am looking for guidance on best practices for virtualizing Intel® DSA devices across multiple virtual machines. It seems that the official Intel DSA User Guide does not cover VM virtualization approaches such as `vdev` or passthrough.
**Environment:**
- CPU: Intel® Xeon® Platinum 6530 (5th Gen)
- OS: Ubuntu Server 22.04 (Kernel 5.19.0-50-generic)
- DSA Utility: accel-config version 4.1.8.gitb78f65f5
- System State: `idxd` and `idxd_bus` modules loaded; IOMMU and scalable_mode enabled
**Setup:**
Using `accel-config`, I created 8 dedicated work queues (DWQs) on the physical device, exposed as character devices:
```bash
/dev/dsa/wq0.0 … /dev/dsa/wq0.7
```
**Approaches Considered:**
1. **Character Device Passthrough**: Pass each `/dev/dsa/wqX.X` directly to a VM.
2. **Native vDSA**: Expose a virtual PCI device to the guest OS via the **VFIO Virtual Device (`vdev`) framework** (preferred).
I found references to `idxd_vdev` in the project codebase, but attempting to load the module fails:
```sh
sudo modprobe idxd_vdev
modprobe: FATAL: Module idxd_vdev not found in directory /lib/modules/5.19.0-50-generic
```
**Questions:**
1. Is the **`vdev` framework** the officially recommended and supported method for creating virtual DSA (vDSA) instances for VMs?
2. Are there any official docs, guides, or configuration examples for this approach?
Any guidance, best practices, or references would be greatly appreciated.
Contributor guide
Assessment
This issue has not been assessed yet.