当用户要求在Linux用户空间中使用命令时,可以显示我们的自定义硬件的一些统计信息.此实现目前使用PROC接口.我们开始添加更多的统计信息然后我们遇到了一个问题,其中特定的统计命令必须执行两次才能获得整个数据,因为PROC接口被限制为1页.
如上所述,内核和用户空间之间的数据传输并不重要,但根据数据,用户可能会做出一些决定.我们对这种接口设计的要求是它应该能够传输大于8192字节的数据量并且命令需要使用最少的内核资源(如锁等),并且它需要快速.
使用ioctl可以解决问题,但由于命令完全不是控制设备而是收集一些统计信息,因此不确定它是否是一个很好的机制,可以按照Linux使用.我们目前正在使用3.4内核; 不确定Netlink在这个版本中是否有损(以前的版本我遇到的问题就像队列变满,socket开始丢弃数据).mmap是另一种选择.任何人都可以建议我使用什么是最好的界面