问题描述
||
我想找出处理写入/ sys / power / state的Linux内核(x86、2.6.18或类似版本)的源文件。我用谷歌搜索并尝试在源代码中搜索
sysfs_create_file
(和目录)。但到目前为止,我没有发现任何有用的信息。有人知道吗?谢谢!
解决方法
要找出对内核的调用在哪里结束,Ftrace可以是一个方便的工具。
对于您的特殊情况,我使用以下命令从
/sys/power/state
获取了读取的函数图(我认为读取功能与您要查找的写入功能相距不太远):
trace-cmd record -p function_graph -F cat /sys/power/state
(您需要是root用户才能执行此操作)
这会将跟踪转储到名为“ 3”的二进制文件中。要读取此文件,请执行以下操作(再次以root用户身份):
trace-cmd report
然后,我使用grep
对诸如\“ power \”或\“ state \”之类的输出进行过滤,最终能够找到以下内容(仅显示相关部分):
sysfs_read_file() {
...
state_show() {
valid_state() {
acpi_suspend_state_valid();
}
}
...
}
因此,读取/sys/power/state
会以state_show
结尾。在该功能下,您会找到state_store
,我猜这将结束写入。