2018-07-17 ftrace

https://elixir.bootlin.com/linux/latest/source/Documentation/trace/ftrace.rst
【轉(zhuǎn)】linux ftrace原理
From: http://www.360doc.com/content/16/0126/13/10366845_530659813.shtml

Tested on Linux kernel 4.8.17


ftrace 系列文章的一個(gè)索引

最后,這里是我找到的一些 ftrace 方面的文章轮锥。它們大部分在 LWN (Linux 新聞周刊)上矫钓,它是 Linux 的一個(gè)極好的資源(你可以購(gòu)買(mǎi)一個(gè) 訂閱!)

作者:
鏈接:https://www.imooc.com/article/29575?block_id=tuijian_wz
來(lái)源:慕課網(wǎng)


指定函數(shù)深度

From: http://terenceli.github.io/技術(shù)/2017/12/05/tracing1

echo 2 > max_graph_depth

function graph tracer

【轉(zhuǎn)】ftrace 簡(jiǎn)介

image.png

Flags::

  '$' - greater than 1 second
  '@' - greater than 100 milisecond
  '*' - greater than 10 milisecond
  '#' - greater than 1000 microsecond
  '!' - greater than 100 microsecond
  '+' - greater than 10 microsecond
  ' ' - less than or equal to 10 microsecond.

xy@ubuntu:/boot$ ag 'CONFIG_DYNAMIC_FTRACE' -i /boot/config-4.8.17

8411:CONFIG_DYNAMIC_FTRACE=y
8412:CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
image.png
  • script
# 2. function graph tracer (valified)

# use root with sudo -s
echo function_graph > /sys/kernel/debug/tracing/current_tracer
cat -n /sys/kernel/debug/tracing/current_tracer

echo
echo do_mount copy_mnt_ns  > /sys/kernel/debug/tracing/set_graph_function
cat -n /sys/kernel/debug/tracing/set_graph_function

# run test process and then
cat -n /sys/kernel/debug/tracing/trace

Schedule switch tracer 的輸出

【轉(zhuǎn)】ftrace 的使用

From: https://www.cnblogs.com/jefree/p/4438975.html
2、 一旦將函數(shù)追蹤器啟動(dòng)既绩,ftrace會(huì)記錄所有函數(shù)的運(yùn)行情況概龄,但是我們只想查看schedule函數(shù)的調(diào)用情況,因此先設(shè)置函數(shù)過(guò)濾器熬词,僅記錄schedule:

   root@thinker:/sys/kernel/debug/tracing#echo schedule > set_ftrace_filter

Schedule switch tracer 記錄系統(tǒng)中的進(jìn)程切換信息旁钧。在其輸出文件 trace 中 , 輸出行的格式有兩種:

第一種表示進(jìn)程切換信息:

Context switches:
Previous task Next Task
<pid>:<prio>:<state> ==> <pid>:<prio>:<state>
第二種表示進(jìn)程 wakeup 的信息:

Wake ups: 
   Current task               Task waking up 

<pid>:<prio>:<state> + <pid>:<prio>:<state>
這里舉一個(gè)實(shí)例:

# tracer: sched_switch 
 # 
 #  TASK_PID   CPU#     TIMESTAMP             FUNCTION 
 #     |         |            |                  | 
   fon-6263  [000] 4154504638.932214:  6263:120:R +   2717:120:S 
   fon-6263  [000] 4154504638.932214:  6263:120:? ==> 2717:120:R 
   bash-2717 [000] 4154504638.932214:  2717:120:S +   2714:120:S

第一行表示進(jìn)程 fon 進(jìn)程 wakeup 了 bash 進(jìn)程。其中 fon 進(jìn)程的 pid 為 6263互拾,優(yōu)先級(jí)為 120歪今,進(jìn)程狀態(tài)為 Ready 。她將進(jìn)程 ID 為 2717 的 bash 進(jìn)程喚醒颜矿。

第二行表示進(jìn)程切換發(fā)生寄猩,從 fon 切換到 bash 。


Stack trace

Since the kernel has a fixed sized stack, it is important not to
waste it in functions. A kernel developer must be conscience of
what they allocate on the stack. If they add too much, the system
can be in danger of a stack overflow, and corruption will occur,
usually leading to a system panic.

There are some tools that check this, usually with interrupts
periodically checking usage. But if you can perform a check
at every function call that will become very useful. As ftrace provides
a function tracer, it makes it convenient to check the stack size
at every function call. This is enabled via the stack tracer.

CONFIG_STACK_TRACER enables the ftrace stack tracing functionality.


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末骑疆,一起剝皮案震驚了整個(gè)濱河市田篇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌箍铭,老刑警劉巖泊柬,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诈火,居然都是意外死亡兽赁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刀崖,“玉大人惊科,你說(shuō)我怎么就攤上這事×燎眨” “怎么了馆截?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蜂莉。 經(jīng)常有香客問(wèn)我蜡娶,道長(zhǎng),這世上最難降的妖魔是什么巡语? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任翎蹈,我火速辦了婚禮,結(jié)果婚禮上男公,老公的妹妹穿的比我還像新娘荤堪。我一直安慰自己,他們只是感情好枢赔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布澄阳。 她就那樣靜靜地躺著,像睡著了一般踏拜。 火紅的嫁衣襯著肌膚如雪碎赢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天速梗,我揣著相機(jī)與錄音肮塞,去河邊找鬼。 笑死姻锁,一個(gè)胖子當(dāng)著我的面吹牛枕赵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播位隶,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拷窜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了涧黄?” 一聲冷哼從身側(cè)響起篮昧,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笋妥,沒(méi)想到半個(gè)月后懊昨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡春宣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年疚颊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狈孔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡材义,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫁赏,到底是詐尸還是另有隱情其掂,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布潦蝇,位于F島的核電站款熬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏攘乒。R本人自食惡果不足惜贤牛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望则酝。 院中可真熱鬧殉簸,春花似錦、人聲如沸沽讹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)爽雄。三九已至蝠检,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挚瘟,已是汗流浹背叹谁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乘盖,地道東北人焰檩。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像侧漓,于是被迫代替她去往敵國(guó)和親锅尘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 【陳雄聊太極拳 2】苦練出功夫的訣竅 2018-04-07陳雄和美太極 《和美太極》中國(guó)專(zhuān)業(yè)太極微刊 陳雄老師聊太...
    阿德樂(lè)閱讀 6,092評(píng)論 1 6
  • 你不必歡喜布蔗,世間比想像的好藤违,人情比想象的真,讓一份溫暖永存心底纵揍,讓一點(diǎn)感動(dòng)稍稍壓抑顿乒。那一點(diǎn)點(diǎn)的淚花,也不要開(kāi)放泽谨,悄...
    雨木西閱讀 223評(píng)論 2 2
  • 生活逼迫我們不得不習(xí)慣璧榄!
    安安安嶺閱讀 224評(píng)論 0 0
  • 最近工作的競(jìng)爭(zhēng)性增強(qiáng)了特漩。由于考核機(jī)制是隨著整體的業(yè)績(jī)來(lái)變動(dòng)的,簡(jiǎn)單點(diǎn)說(shuō)骨杂,大家如果都進(jìn)步了涂身,自己沒(méi)有進(jìn)步,就是墊底的...
    張聞凱初諾閱讀 138評(píng)論 0 0