drivers/uio

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.

keep-annotate conf=0.86 deploy=low replacement=vfio-pci / vfio-platform subsystem=uio category=infrastructure
86%

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

15 files
3,958 source lines
62 commits, 5y
+553 / −532 lines added / removed, 5y
39 authors, 5y
monthly commits · 2021-04-21 → 2026-04-21 · 62 total · active in 30/61 months
2021 2022 2023 2024 2025 2026 2021-04: 2 commits · +33 −1 2021-05: 4 commits · +11 −5 2021-06: 0 commits · +0 −0 2021-07: 0 commits · +0 −0 2021-08: 0 commits · +0 −0 2021-09: 0 commits · +0 −0 2021-10: 1 commit · +8 −10 2021-11: 0 commits · +0 −0 2021-12: 2 commits · +10 −4 2022-01: 0 commits · +0 −0 2022-02: 0 commits · +0 −0 2022-03: 0 commits · +0 −0 2022-04: 0 commits · +0 −0 2022-05: 1 commit · +2 −0 2022-06: 1 commit · +1 −9 2022-07: 0 commits · +0 −0 2022-08: 1 commit · +2 −0 2022-09: 3 commits · +15 −9 2022-10: 1 commit · +3 −3 2022-11: 0 commits · +0 −0 2022-12: 0 commits · +0 −0 2023-01: 2 commits · +3 −4 2023-02: 0 commits · +0 −0 2023-03: 0 commits · +0 −0 2023-04: 0 commits · +0 −0 2023-05: 1 commit · +2 −0 2023-06: 0 commits · +0 −0 2023-07: 1 commit · +5 −1 2023-08: 1 commit · +2 −1 2023-09: 0 commits · +0 −0 2023-10: 0 commits · +0 −0 2023-11: 0 commits · +0 −0 2023-12: 1 commit · +3 −4 2024-01: 0 commits · +0 −0 2024-02: 3 commits · +59 −16 2024-03: 6 commits · +25 −24 2024-04: 4 commits · +24 −284 2024-05: 1 commit · +6 −1 2024-06: 0 commits · +0 −0 2024-07: 0 commits · +0 −0 2024-08: 2 commits · +10 −1 2024-09: 3 commits · +4 −10 2024-10: 0 commits · +0 −0 2024-11: 2 commits · +2 −2 2024-12: 2 commits · +3 −1 2025-01: 1 commit · +43 −43 2025-02: 0 commits · +0 −0 2025-03: 1 commit · +26 −6 2025-04: 0 commits · +0 −0 2025-05: 3 commits · +22 −24 2025-06: 0 commits · +0 −0 2025-07: 0 commits · +0 −0 2025-08: 3 commits · +5 −11 2025-09: 4 commits · +206 −47 2025-10: 1 commit · +7 −0 2025-11: 0 commits · +0 −0 2025-12: 0 commits · +0 −0 2026-01: 2 commits · +3 −3 2026-02: 2 commits · +8 −8 2026-03: 0 commits · +0 −0 2026-04: 0 commits · +0 −0

sources

  1. 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.

  2. lore.kernel.org

    A 2026 patch fixes `uio_pci_generic_sva`, indicating ongoing upstream bug-fix attention.

  3. 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.

  4. 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.

  5. 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.