0

我想找出处理写入 /sys/power/state 的 Linux 内核(x86、2.6.18 或类似版本)的源文件。我用谷歌搜索并尝试sysfs_create_file在源代码中搜索(和目录)。但到目前为止我没有发现任何有用的东西。有人知道吗?谢谢!

4

1 回答 1

5

要找出对内核的调用最终在哪里结束,Ftrace是一个方便的工具。

对于您的特定情况,我使用以下命令获取用于读取的函数图/sys/power/state(我认为读取函数与您正在寻找的写入函数不会太远):

trace-cmd record -p function_graph -F cat /sys/power/state

(您需要是root才能执行此操作)

这会将跟踪转储到一个名为trace.dat. 要读取此文件,请执行以下操作(再次以 root 身份):

trace-cmd report

然后我用grep“电源”或“状态”之类的东西过滤输出,最终能够找到以下内容(仅显示相关部分):

sysfs_read_file() {
  ...
  state_show() {
    valid_state() {
      acpi_suspend_state_valid();
    }
  }
  ...
}

所以阅读/sys/power/statestate_show. 在该函数下方,您可以找到state_store我猜写入将结束的位置。

于 2011-04-14T08:48:32.843 回答