Linux内核的ftrace输出格式

时间:2014-10-27 15:02:43

标签: android linux kernel tracing ftrace

我在几台不同的设备上使用Android上的ftrace,但我注意到它们之间的输出格式不同。在某些情况下,包括当前进程的TGID,而在其他情况下,则不包括。

TGID在我正在使用ftrace的当前应用程序中非常有用,我想知道如何启用它。我知道sysfs文件“/ sys / kernel / debug / tracing / options / print-tgid”,但遗憾的是,这在我的设备上不可用。是否有可用于将TGID添加到ftrace输出格式的内核选项或ftrace句柄?

#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
#                    ^^ (no tgid...)

VS

#                                      _-----=> irqs-off
#                                     / _----=> need-resched
#                                    | / _---=> hardirq/softirq
#                                    || / _--=> preempt-depth
#                                    ||| /     delay
#           TASK-PID    TGID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |        |      |   ||||       |         |
#                        ^^^(tgid is available in this column!)

1 个答案:

答案 0 :(得分:0)

我确定了添加此功能的位置。只有非常新版本的Linux内核的Android分支有tgid信息可用,而且没有vanilla Linux内核版本(我很清楚)。如果将补丁从https://android.googlesource.com/kernel/common/+/d34f20303f234fb6eae16548055766916cae7c2b%5E!/应用到内核源代码树并构建,则应该进行设置。您可能必须在修补程序中手动应用枚举,但是一旦添加它就应该设置。