使用ioctl与读取时的PCIe总线延迟?

时间:2018-12-18 19:18:28

标签: c linux-kernel driver bus

我有一个硬件客户端 1 ,它是我为其编写的Linux PCI内核驱动程序的数据采集卡系列。

根据用户指定的使用方式,该卡一次只能传送1-4个字节,在这种情况下,我使用ioctl来实现某些功能,但也使用{{3 }}结构,将卡视为基本字符设备,如果卡用户只希望与卡进行简单的1字节通信,就可以仅使用file_operationsread

与客户端讨论驱动程序后,他们的一位开发人员理解为,使用open/read/write将卡视为字符设备会在PCI 总线上引入延迟使用open/ioctl

鉴于驱动程序不区分其打开方式,并且ioctlread/write函数调用相同的代码,对此是否有意义?

如果是这样,我该如何从驱动程序代码中测试 bus 延迟?我可以调用内核功能来对此进行测试吗?

最后,我对总线的测试仅对我的特定设置(内核设置,平台,内存时序,CPU等)有效吗?

1:他们只有2个其他开发人员,都没有使用过Linux

1 个答案:

答案 0 :(得分:2)

我怀疑客户的开发人员有些困惑。他认为使用$dbConfig = getenv(); // associative array $dbPassword = $dbConfig['DB_PASSWORD']; readwrite之间的区别对应于总线上执行的操作类型。如果您向他解释这仅是软件API的区别,并且任一选项在总线上执行的操作完全相同,则应该满足它们。