[導(dǎo)讀]在我仔細(xì)研究Linux內(nèi)核中的ftrace之后,發(fā)現(xiàn)ftrace中的各個(gè)tracers的作用一直被人們嚴(yán)重低估了, 比如我們會(huì)花了大量的時(shí)間去理解Linux內(nèi)核中的一塊代碼,然后猜測(cè)可能的執(zhí)行流, 但是ftrace會(huì)首先直接告訴你整個(gè)執(zhí)行流,然后你再去查看代碼,這樣無論從效率和準(zhǔn)確度來講都是極大的提升。
在我仔細(xì)研究Linux內(nèi)核中的ftrace之后,發(fā)現(xiàn)ftrace中的各個(gè)tracers的作用一直被人們嚴(yán)重低估了, 比如我們會(huì)花了大量的時(shí)間去理解Linux內(nèi)核中的一塊代碼,然后猜測(cè)可能的執(zhí)行流, 但是ftrace會(huì)首先直接告訴你整個(gè)執(zhí)行流,然后你再去查看代碼,這樣無論從效率和準(zhǔn)確度來講都是極大的提升。
對(duì)于任意一個(gè)函數(shù),想要知道它是否執(zhí)行了,或者想知道它的函數(shù)參數(shù),函數(shù)返回值,函數(shù)的執(zhí)行時(shí)間,函數(shù)向上的執(zhí)行流,函數(shù)向下的執(zhí)行流,甚至任意兩個(gè)函數(shù)之間的執(zhí)行流,ftrace都能很好的支持。重要的是所有函數(shù)都能這樣結(jié)合起來使用,還有更加重要的是函數(shù)可以跟事件結(jié)合起來,事件可以過濾可以觸發(fā)其它的事件和tracers,這樣就衍生出了無限的可能性。
本課程的設(shè)計(jì)宗旨是讓學(xué)員站在設(shè)計(jì)者的角度來理解ftrace,明白各個(gè)tracers為什么這樣設(shè)計(jì)和整個(gè)發(fā)展脈絡(luò),進(jìn)而更加靈活地使用它以輔助我們的實(shí)際工程項(xiàng)目和研究學(xué)習(xí),也可以激發(fā)學(xué)員進(jìn)而迸發(fā)出更加先進(jìn)的trace功能為整個(gè)Linux內(nèi)核社區(qū)做貢獻(xiàn)。本課程更加偏向于理解設(shè)計(jì)思想和使用,如果想了解源代碼級(jí)別的實(shí)現(xiàn),可以參考我在閱碼場(chǎng)平臺(tái)的視頻課程《Linux內(nèi)核tracers的實(shí)現(xiàn)原理與應(yīng)用》。
01課程大綱
第一部分 實(shí)驗(yàn)課程(2小時(shí))
|
1. ftrace總體介紹2. function tracer3. 查看函數(shù)是否執(zhí)行4. 查看函數(shù)向上的調(diào)用棧(堆棧)5. set_ftrace_filter一招制勝6. 練習(xí)查看函數(shù)是否執(zhí)行和獲取對(duì)應(yīng)的堆棧
|
第二部分(2小時(shí))
|
7. function_graph tracer8. 查看函數(shù)執(zhí)行時(shí)間9. 查看函數(shù)向下的調(diào)用棧10. 同時(shí)查看函數(shù)向上和向下的調(diào)用棧11. 練習(xí)查看函數(shù)的執(zhí)行時(shí)間和向下的調(diào)用棧
|
第三部分(2小時(shí))
|
12. kprobe event13. trace event14. kprobe/tracepoint與event結(jié)合15. probes 與event 結(jié)合16. vfs與event結(jié)合17. event filter18. event trigger19. 練習(xí)kprobe event和trace event的使用
|
第四部分(2小時(shí))
|
20. function tracer21. Function graph tracer22. wakeup23. blk24. 練習(xí)各種tracer的使用
|
第五部分(2小時(shí))
|
25. ftrace聯(lián)合大演練之組合的魔力26. 中斷延遲27. 信號(hào)處理28. 使用ftrace探索poll select epoll io_uring
|
第六部分
|
29. 學(xué)習(xí)成果評(píng)估與模擬面試
|
02你將收獲
-
從根上解決企業(yè)Linux底層人員難找的問題,自己培養(yǎng)骨干工程師
-
加快問題定位,提高研發(fā)效率,加快產(chǎn)品研發(fā)上市
-
強(qiáng)調(diào)動(dòng)手,以Ftrace為抓手學(xué)習(xí)內(nèi)核
-
以Ftrace為抓手打通軟硬件任督二脈:IO和中斷
-
使用Ftrace做性能分析和性能優(yōu)化
-
通過案例,學(xué)習(xí)使用Ftrace分析和定位問題的技巧
-
Ftrace設(shè)計(jì)思想和案例分析
03適合誰學(xué)
-
Linux內(nèi)核態(tài)程序員
-
想探索內(nèi)核層的用戶態(tài)程序員
-
Linux內(nèi)核愛好者
-
運(yùn)維人員
-
嵌入式開發(fā)人員
-
網(wǎng)絡(luò)設(shè)備研發(fā)
-
內(nèi)核網(wǎng)絡(luò)模塊開發(fā)人員
05學(xué)員反饋好評(píng)如潮:
-
座艙:學(xué)習(xí)這門課主要是想增強(qiáng)內(nèi)核系統(tǒng)問題分析能力,也是最近才接觸ftrace,之前工作經(jīng)驗(yàn)沒接觸。
-
手機(jī):學(xué)習(xí)這門課是因?yàn)榫W(wǎng)絡(luò)模塊和功耗分析的工作會(huì)用到,而且對(duì)學(xué)習(xí)其他內(nèi)核模塊有幫助
-
電信:其實(shí)我對(duì)內(nèi)核比較感興趣,ftrace是一個(gè)比較好的觀測(cè)內(nèi)核工具,所以想要比較系統(tǒng)的學(xué)下。
-
網(wǎng)絡(luò):覺得這個(gè)工具挺好的,以前用過,但一知半解,想后期多用來debug;工作中主要想查延時(shí)敏感任務(wù)被RT線程搶占的原因、rcu stall和Page fault等。
-
云原生:之前tracer的課程聽了感覺不錯(cuò),但是還是以tracer的本身原理為主,實(shí)踐部分較少,所以想報(bào)這次課程
-
OS:我目前在從事linux 操作系統(tǒng)研發(fā)相關(guān)工作,ftrace是很有價(jià)值的功能模塊~但是目前大多數(shù)人對(duì)這部分了解過少,因此報(bào)名學(xué)習(xí)一下~
-
網(wǎng)絡(luò):網(wǎng)絡(luò)相關(guān)的工作會(huì)用到,主要是想和大家多交流下,在實(shí)戰(zhàn)中互相學(xué)習(xí)吧;
-
嵌入式:我對(duì)內(nèi)核底層感興趣,決定了這個(gè)是我以后的發(fā)展方向,ftrace將會(huì)對(duì)我熟悉底層,解bug很有幫助
Ftrace訓(xùn)練營1期線上合影
Ftrace訓(xùn)練營1期證書
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
自2014年ST公司推出STM32CubeMX以來,這款圖形化配置工具憑借“一鍵生成初始化代碼”“跨IDE兼容”“中間件集成”等特性,迅速成為78%的STM32開發(fā)者首選工具。然而,伴隨其普及的爭(zhēng)議始終未息:STM32C...
關(guān)鍵字:
STM32CubeMX
ST公司
在工業(yè)自動(dòng)化領(lǐng)域,Modbus協(xié)議憑借其開放性和易用性成為設(shè)備通信的"通用語言"。然而,當(dāng)工程師面對(duì)Modbus RTU、ASCII和TCP三種變體時(shí),如何根據(jù)具體場(chǎng)景做出最優(yōu)選擇?本文將從編碼機(jī)制、通信效率、錯(cuò)誤檢測(cè)等...
關(guān)鍵字:
Modbus協(xié)議
TCP
在工業(yè)自動(dòng)化、能源管理等實(shí)時(shí)性要求嚴(yán)苛的場(chǎng)景中,Modbus通信系統(tǒng)的響應(yīng)延遲直接關(guān)系到設(shè)備控制的精度與系統(tǒng)穩(wěn)定性。從智能電表的功率調(diào)節(jié)到機(jī)器人關(guān)節(jié)的同步控制,微秒級(jí)的響應(yīng)偏差都可能引發(fā)連鎖故障。本文從硬件架構(gòu)、軟件設(shè)計(jì)...
關(guān)鍵字:
Modbus
通信系統(tǒng)
在新能源發(fā)電、電動(dòng)汽車、數(shù)據(jù)中心等直流供電系統(tǒng)中,過壓故障是導(dǎo)致設(shè)備損壞的主要誘因之一。據(jù)統(tǒng)計(jì),電力電子設(shè)備故障中約35%與過壓事件相關(guān),其中直流側(cè)過壓占比達(dá)62%。本文以基于TVS二極管與MOSFET的復(fù)合型直流過壓保...
關(guān)鍵字:
直流過壓
保護(hù)電路
在工業(yè)物聯(lián)網(wǎng)(IIoT)與邊緣計(jì)算快速發(fā)展的背景下,Modbus協(xié)議憑借其輕量化特性成為微控制器(MCU)設(shè)備互聯(lián)的首選方案。然而,在資源受限的MCU(如STM32F0系列、ESP8266等,RAM通常小于32KB,F(xiàn)l...
關(guān)鍵字:
微控制器
Modbus
工業(yè)物聯(lián)網(wǎng)
在工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗(yàn)如同通信網(wǎng)絡(luò)的"免疫系統(tǒng)",某石化廠DCS系統(tǒng)曾因CRC計(jì)算錯(cuò)誤導(dǎo)致0.3%的數(shù)據(jù)包丟失,引發(fā)連鎖控制故障。本文將深入解析CRC-16/MODBUS算法原理,對(duì)比軟件...
關(guān)鍵字:
Modbus RTU
CRC
算法
在工業(yè)自動(dòng)化領(lǐng)域,Modbus協(xié)議憑借其簡潔高效的設(shè)計(jì),已成為設(shè)備間通信的"通用語言"。某智能電網(wǎng)項(xiàng)目通過Modbus RTU協(xié)議實(shí)現(xiàn)2000臺(tái)電表的數(shù)據(jù)采集,通信成功率高達(dá)99.97%,這背后正是對(duì)消息結(jié)構(gòu)的精準(zhǔn)把控。...
關(guān)鍵字:
Modbus
工業(yè)自動(dòng)化
在工業(yè)物聯(lián)網(wǎng)設(shè)備開發(fā)中,Modbus從站功能已成為微控制器(MCU)的標(biāo)配能力。某智能電表項(xiàng)目通過在STM32上實(shí)現(xiàn)Modbus RTU從站,成功將設(shè)備接入現(xiàn)有SCADA系統(tǒng),開發(fā)周期縮短40%。本文將系統(tǒng)解析MCU實(shí)現(xiàn)...
關(guān)鍵字:
微控制器
Modbus
協(xié)議棧優(yōu)化
在嵌入式系統(tǒng)中,F(xiàn)lash存儲(chǔ)器因其非易失性、高密度和低成本特性,成為代碼存儲(chǔ)和關(guān)鍵數(shù)據(jù)保存的核心組件。然而,MCU驅(qū)動(dòng)Flash讀寫時(shí),開發(fā)者常因?qū)τ布匦岳斫獠蛔慊虿僮髁鞒淌韬觯萑胄阅芟陆?、?shù)據(jù)損壞甚至硬件損壞的陷...
關(guān)鍵字:
MCU驅(qū)動(dòng)
Flash
在嵌入式開發(fā)中,STM32的時(shí)鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點(diǎn)。然而,看似簡單的時(shí)鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時(shí)鐘源選擇、PLL配置、總線時(shí)鐘分配等關(guān)鍵環(huán)...
關(guān)鍵字:
STM32
時(shí)鐘系統(tǒng)
在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計(jì)與硬件實(shí)現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對(duì)應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級(jí)等不同場(chǎng)景。...
關(guān)鍵字:
單片機(jī)
ISP
ICP
IAP
嵌入式系統(tǒng)開發(fā)
在工業(yè)自動(dòng)化、汽車電子及物聯(lián)網(wǎng)領(lǐng)域,CANBUS總線因其高可靠性和實(shí)時(shí)性被廣泛應(yīng)用。然而,復(fù)雜電磁環(huán)境、機(jī)械振動(dòng)及配置不當(dāng)?shù)纫蛩爻?dǎo)致通信異常。本文基于實(shí)際工程案例,從硬件、協(xié)議、軟件及環(huán)境四大維度,系統(tǒng)梳理CANBUS...
關(guān)鍵字:
CANBUS
網(wǎng)絡(luò)通信
CANBUS總線
在工業(yè)自動(dòng)化場(chǎng)景中,變頻器作為核心驅(qū)動(dòng)設(shè)備,其CANBUS網(wǎng)絡(luò)通訊穩(wěn)定性直接影響生產(chǎn)線運(yùn)行效率。某汽車制造企業(yè)總裝線曾因變頻器通訊異常導(dǎo)致焊接機(jī)器人停機(jī),最終定位為0.5Ω接地電阻異常引發(fā)的共模干擾。本文結(jié)合實(shí)際案例,系...
關(guān)鍵字:
變頻器
CANBUS
在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測(cè)等場(chǎng)景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...
關(guān)鍵字:
STM32
溫度傳感器
在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時(shí)機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個(gè)維度,系統(tǒng)分析看門狗初始化的最佳實(shí)踐...
關(guān)鍵字:
單片機(jī)
看門狗
嵌入式系統(tǒng)