linux内核如何处理写入/ sys / power / state

时间:2011-04-14 03:22:19

标签: linux kernel acpi sysfs

我想找出处理写入/ sys / power / state的Linux内核(x86,2.6.18或类似文件)的源文件。我用Google搜索并尝试在源代码中搜索sysfs_create_file(和dir)。但到目前为止我没有找到任何有用的东西。谁知道呢?谢谢!

1 个答案:

答案 0 :(得分:5)

要找出内核调用的最终位置,Ftrace可以成为一个方便的工具。

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

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

(你需要root才能执行它)

这会将跟踪转储到名为trace.dat的二进制文件中。要读取此文件,请执行以下操作(再次以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,这是我猜的结果将会结束的地方。

相关问题