Userspace I/O (UIO) framework for PCI, platform, Hyper-V, and DFL devices
A lightweight kernel framework that lets user-space programs talk directly to hardware — typically industrial I/O cards, FPGA accelerators, network cards used by DPDK, and Hyper-V VMBus devices in Azure VMs — by exposing device memory and interrupts through simple /dev/uioN nodes instead of writing a full in-kernel driver.
recommendation
Worth keeping but documenting its niche, because UIO still has active upstream development (a new SVA variant landed in late 2025 with follow-up fixes in 2026) and real production use — most visibly Microsoft Azure's MANA+DPDK guidance, which still binds VMBus devices to uio_hv_generic. That said, DPDK and the broader community now recommend vfio-pci as the safer, IOMMU-backed choice for new deployments, so UIO's role is gradually shrinking to legacy and fallback scenarios where VFIO is unavailable.
repository signals
sources
- lore.kernel.org
RFC/patch series in late 2025 adds new `uio_pci_generic_sva` support, showing new feature development in `drivers/uio` rather than retirement.
- lore.kernel.org
A 2026 patch fixes `uio_pci_generic_sva`, indicating ongoing upstream bug-fix attention.
- docs.kernel.org
Kernel documentation positions UIO as a framework for devices such as industrial I/O cards and other hardware that does not fit standard kernel subsystems.
- doc.dpdk.org
Current DPDK documentation says `vfio-pci` is recommended in all cases, with UIO modules like `uio_pci_generic` retained as fallbacks when VFIO is unavailable.
- learn.microsoft.com
Microsoft's Azure MANA+DPDK guidance still instructs users to bind VMBus devices to `uio_hv_generic`, showing an active cloud/VM niche deployment.
codex reasoning notes (technical)
Shell inspection of `drivers/uio/Kconfig` and source files showed a real driver subsystem with generic PCI/platform plus Hyper-V and DFL glue, not dead helper code. `lore_file_timeline` on `drivers/uio/uio_pci_generic_sva.c` produced the two lore URLs above, showing 2025-2026 feature work and fixes; no clear removal thread surfaced. Web search found the kernel UIO HOWTO, current DPDK docs recommending VFIO over UIO, and Microsoft Learn documentation for `uio_hv_generic` in Azure. Conclusion: UIO is niche and increasingly superseded for new secure userspace assignment, but still has live upstream maintenance and real 2025-era deployments, so keep it with annotations rather than deprecate/remove.