I/O 虚拟化技术 — UIO Framework

Posted 范桂飓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I/O 虚拟化技术 — UIO Framework相关的知识,希望对你有一定的参考价值。

目录

文章目录

UIO Framework — 用户态网络协议栈方案

UIO Framework Kernel Module(User Space I/O,用户态 I/O 框架内核模块),是 Kernel 提供的用户态 I/O 驱动程序框架。基于 UIO Framework 可以编写出让数据报文绕过 Kernel Network Stack,直接进入 User Space 进行处理的内核模块(e.g. DPDK IGB_UIO)。

但是,UIO 也有着不足之处,例如:不支持 DMA(不受 IOMMU 的保护)、中断支持有限、需要 Root 权限运行等,所以通过 DMA 传输大流量数据的 I/O 设备,如:被 Passthrougth 的网卡、显卡等设备,是无法使用 UIO Framework 的。

UIO 的实现机制是:对用户态暴露一个文件接口,当注册一个 UIO 设备时,就会出现一个系统文件 /dev/uioX,对该文件的读写就是对网卡设备的内存的读写。除此之外,对网卡设备的控制还可以通过 /sys/class/uio 下的各个文件的读写来完成。

如下图:

  • mmap() 接口:用于映射设备的寄存器空间。
  • read() 接口:用于等待

以上是关于I/O 虚拟化技术 — UIO Framework的主要内容,如果未能解决你的问题,请参考以下文章

linux UIO

[SPDK/NVMe存储技术分析]007 - 初识UIO

VFIO PF SRIOV IOMMU UIO概念解释关联

[架构之路-46]:目标系统 - 系统软件 - Linux OS硬件设备驱动-UIO用户空间IO驱动框架与用户空间协议栈

DPDK中使用VFIO的配置

Linux 设备驱动之 UIO 机制