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_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

관련 정보