ftraceによって記録されたcpu_idleおよびcpu_Frequencyイベントトレースを解釈する方法は?

ftraceによって記録されたcpu_idleおよびcpu_Frequencyイベントトレースを解釈する方法は?

私はftraceを使ってcpu_Frequencyとcpu_idleという2つのイベントを追跡します。この情報の解釈方法に関するドキュメントが見つかりません。 cpu_Frequencyおよびcpu_idleトレースイベント情報の解釈方法を理解するために必要な、生成されたトレースファイルの2つのフラグメントを以下に提供しました。以下に混乱した点を書き留めました。質問に答えて、独自の洞察を提供してください。

CPU_周波数の場合:
1. タイムスタンプの形式は何ですか?
2. それぞれの新しい動作周波数ポイントに 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_IDLEの場合:
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_IDLEの場合:

  1. 「4294967295」は、現在の状態を終了することを意味します。
  2. ドキュメントはここにあります:https://www.kernel.org/doc/Documentation/trace/events-power.txt

おすすめ記事