我在几个不同的设备上使用 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!)
最佳答案
我指出了添加此功能的位置。只有 linux 内核的 Android 分支的非常新版本才有可用的 tgid 信息,并且没有 vanilla Linux 内核版本(我知道)。如果您应用来自 https://android.googlesource.com/kernel/common/+/d34f20303f234fb6eae16548055766916cae7c2b%5E!/ 的补丁到内核源代码树并构建,你应该被设置。您可能需要手动应用补丁中的枚举,但添加后您应该进行设置。
关于android - Linux内核的ftrace输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26590513/