如何解决UIO驱动——理解实现逻辑
我已经开始学习 UIO 和 DPDK 并且有一些我不明白的差距,也无法在互联网上找到明确的答案。我了解缓冲区卸载、CPU 缓存污染卸载以及驱动程序通常更快的原因。
但是用户应用程序和 UIO 驱动程序通过“文件”进行通信:(伪文件系统,hugetlbfs)
- /dev/uioX
- /sys/class/uio/uioX/device/config
- /sys/class/uio/uioX/device/resourceX
- 与使用内核网络驱动程序相比,使用读/写不是只会生成更多的上下文切换吗?
正式的 documentation 表示“从 /dev/uioX 读取的整数值表示总中断计数”。
- 每个中断代表一个接收/发送的包?
例如read() 返回收到的新包的数量。 - 只有一种类型的中断?
文件由 HUGEPAGE 支持并与 NIC 共享(通过物理地址)。
- 如果我的进程崩溃了,谁来释放它们? NIC 如何知道停止?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。