1

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

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

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

对比

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

1 回答 1

0

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

于 2014-12-16T20:25:34.130 回答