Jon*_*zu. 3 pci kernel-modules
嗨,Linux 专家!
我试图找到控制和强调 PCI 设备的最佳方法。我首先编写了一个简单的 bash 脚本,该脚本使用来自 pciutils(lspci 和 setpci)的命令来配置设备并在总线上创建流量
虽然脚本工作得很好,但它们的执行速度似乎比 PCIe 链接速度慢得多,因此很难在总线上产生压力,或在电源模式和链接速度之间快速切换。
我想知道,如果我写了一个内核模块来调用 pci.h 库中的函数,它的执行速度会更快吗?我能否更快地访问 PCI 设备?
任何帮助将不胜感激:)
shell 调用外部命令来做任何事情都会产生大量的开销。Fork/exec 的开销相对较高。
直接使用 API(而不是通过调用 CLI 实用程序)从 shell 脚本移动到用户空间 C 程序将是一个巨大的加速。也比编写内核模块更容易。如果您可以找到脚本语言(Perl、Python、Ruby 等)的 API 绑定,那么速度几乎一样快。
仍然存在开销(例如,系统调用开销),您可以通过转换为内核模块来消除这些开销。到那时,您基本上已经消除了所有开销,而提高速度的唯一方法就是摆脱操作系统和/或自定义测试硬件。
PS:关于如何实际编写用户空间 C 程序或内核模块的问题可能最好在Stack Overflow上提问,堆栈交换网络站点上的编程问题。与任何 Stack Exchange 站点一样,请在那里发布问题之前查看他们的Stack Overflow 帮助中心。他们的特别有一些关于提出广受欢迎的问题的有用提示。
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |