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的主要内容,如果未能解决你的问题,请参考以下文章
[架构之路-46]:目标系统 - 系统软件 - Linux OS硬件设备驱动-UIO用户空间IO驱动框架与用户空间协议栈