我打算写一个网络设备驱动程序,它支持多 channel 。
现在,我要将这个 channel 的一些计数器(例如传输的字节/数据包)写入sysfs
。
比如这个设备开8个 channel ,那么,我想有这样的sysfs:
/sys/devices/mynetdev/channel_0/
______________________________/bytes_egress
/sys/devices/mynetdev/channel_1/
______________________________/bytes_egress
/sys/devices/mynetdev/channel_2/
______________________________/bytes_egress
...
问题:
- 如何创建属性组以便每个 channel 有一个文件夹?
- 看来我需要在设备注册之前关联属性组。那我什么时候更新这些属性呢?更新属性可能会影响网络性能?
- “属性”是如何工作的?例如,当用户从
cat
命令查询 sysfs 时,它是否向驱动程序发出命令以更新属性?或者我的驱动程序会不断更新属性,而cat
命令只是查询值?
谢谢!
最佳答案
将 iio_chan_spec 的 .modified 字段设置为 1。使用相同 iio_chan_spec 结构的 .channel2 字段指定修饰符,用于指示 channel 的物理唯一特性,例如其方向或光谱响应。例如,光传感器可以有两个 channel ,一个用于红外光,一个用于红外光和可见光。
关于linux - 如何在 sysfs 中写入每个 channel 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41055529/