宏定義
在使用 ftrace 之前,需要確保內(nèi)核配置編譯了其配置選項(xiàng)。
CONFIG_FTRACE=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_TRACER=Y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_ENABLE_DEFAULT_TRACERS=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_PREEMPT_TRACER=y
而后在 /sys/kernel/debug/trace 目錄下提供了各種跟蹤器(tracer)和 event 事件,一些常用的選項(xiàng)如下。
available_tracers:列出當(dāng)前系統(tǒng)支持的跟蹤器。
available_events:列出當(dāng)前系統(tǒng)支持的 event 事件。
current_tracer:設(shè)置和顯示當(dāng)前正在使用的跟蹤器。使用 echo 命令可以把跟蹤器的名字寫入該文件,即可以切換不同的跟蹤器。默認(rèn)為
nop,即不做任何跟蹤操作。
trace:讀取跟蹤信息。通過 cat 命令查看 ftrace 記錄下來的跟蹤信息。
tracing_on:用于開始或暫停跟蹤。
trace_options:設(shè)置 ftrace 的一些相關(guān)選項(xiàng)。
ftrace 當(dāng)前包含多個(gè)跟蹤器,很方便用戶用來跟蹤不同類型的信息,例如進(jìn)程睡眠喚醒、搶占延遲的信息。查看 available_tracers
可以知道當(dāng)前系統(tǒng)支持哪些跟蹤器,如果系統(tǒng)支持的跟蹤器上沒有用戶想要的,那就必須在配置內(nèi)核時(shí)自行打開,然后重新編譯內(nèi)核。常用的 ftrace 跟蹤器如下。
nop:不跟蹤任何信息。將 nop 寫入 current_tracer 文件可以清空之前收集到的跟蹤信息。
function:跟蹤內(nèi)核函數(shù)執(zhí)行情況。
function_graph:可以顯示類似 C 語言的函數(shù)調(diào)用關(guān)系圖,比較直觀。
wakeup:跟蹤進(jìn)程喚醒信息。
irqsoff:跟蹤關(guān)閉中斷信息,并記錄關(guān)閉的最大時(shí)長。
preemptoff:跟蹤關(guān)閉禁止搶占信息,并記錄關(guān)閉的最大時(shí)長。
preemptirqsoff:綜合了 irqoff 和 preemptoff 兩個(gè)功能。
sched_switch:對內(nèi)核中的進(jìn)程調(diào)度活動(dòng)進(jìn)行跟蹤。
-
Linux
+關(guān)注
關(guān)注
87文章
11322瀏覽量
209867 -
宏定義
+關(guān)注
關(guān)注
0文章
51瀏覽量
9037
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論