如何解释 ftrace 记录的 cpu_idle 和 cpu_Frequency 事件跟踪?

如何解释 ftrace 记录的 cpu_idle 和 cpu_Frequency 事件跟踪?

我使用 ftrace 跟踪两个事件:cpu_Frequency 和 cpu_idle。我无法找到任何说明如何解释此信息的文档。我在下面提供了生成的跟踪文件中的两个片段,我需要了解如何解释 cpu_Frequency 和 cpu_idle 跟踪事件信息。我把我的困惑写在下面,请回答问题并提供你自己的见解。

对于CPU_频率:
1. 时间戳的格式是什么?
2. 为什么每个新的工作频率点都会有两个事件,每个事件是否意味着CPU开始以该频率工作,或者这些事件是进入/退出对?

跟踪输出:

# tracer: nop
#
# entries-in-buffer/entries-written: 36062/36062   #P:1  
#  
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
kworker/0:1H-27    [000] ...1  1130.362603: cpu_frequency: state=1190400 cpu_id=0
kworker/0:1H-27    [000] ...1  1130.362609: cpu_frequency: state=1190400 cpu_id=0
kworker/0:1H-27    [000] ...1  1130.411934: cpu_frequency: state=300000 cpu_id=0
kworker/0:1H-27    [000] ...1  1130.411947: cpu_frequency: state=300000 cpu_id=0
kworker/0:1H-27    [000] ...1  1131.532595: cpu_frequency: state=1190400 cpu_id=0
kworker/0:1H-27    [000] ...1  1131.532599: cpu_frequency: state=1190400 cpu_id=0
kworker/0:1H-27    [000] ...1  1131.581758: cpu_frequency: state=300000 cpu_id=0
kworker/0:1H-27    [000] ...1  1131.581768: cpu_frequency: state=300000 cpu_id=0

对于CPU_空闲:
1、这里的state=4294967295是什么意思,cpu_idle状态是什么?
2. 我在哪里可以获得有关这些状态实际含义的文档/信息?

 <idle>-0     [000] d..2  1960.307101: cpu_idle: state=3 cpu_id=0
 <idle>-0     [000] ...2  1960.310722: cpu_idle: state=4294967295 cpu_id=0
 <idle>-0     [000] d..2  1960.310741: cpu_idle: state=3 cpu_id=0
 <idle>-0     [000] ...2  1960.312114: cpu_idle: state=4294967295 cpu_id=0
 <idle>-0     [000] d..2  1960.312131: cpu_idle: state=3 cpu_id=0
 <idle>-0     [000] .N.2  1960.314410: cpu_idle: state=4294967295 cpu_id=0
 <idle>-0     [000] d..2  1960.314980: cpu_idle: state=3 cpu_id=0
 <idle>-0     [000] .N.2  1960.316077: cpu_idle: state=4294967295 cpu_id=0
 <idle>-0     [000] d..2  1960.316539: cpu_idle: state=3 cpu_id=0

谢谢。

答案1

对于CPU_频率:

  1. 时间戳格式为“secs.usecs”。您可以在 ftrace 文档中找到更多相关信息:https://www.kernel.org/doc/Documentation/trace/ftrace.txt
  2. 我认为它显示了频率之间的转换延迟。

对于CPU_空闲:

  1. '4294967295' 表示退出当前状态。
  2. 该文档可以在这里找到:https://www.kernel.org/doc/Documentation/trace/events-power.txt

相关内容