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