0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux ftrace簡介與分析

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-20 11:17 ? 次閱讀

最近遇到 i2c 傳輸慢的問題,正常一筆 i2c 傳輸 52 bytes 應(yīng)該在 1ms 內(nèi)返回,但是偶爾出現(xiàn) 6 ~ 7ms 才返回,不滿足要求,因此研究一下 ftrace 工具,分析 i2c 傳輸?shù)降茁谀睦?。懷疑?/p>

同一路 i2c bus 掛載設(shè)備多,可能同時發(fā)起傳輸,導(dǎo)致?lián)屨肌#ń鉀Q方法:重要器件獨占一路 i2c bus)

i2c 硬件傳輸慢。一般不太可能,因為這是硬件行為,除非從機返回慢。(研究從機為什么慢)

i2c 傳輸完成后返回,i2c 控制器發(fā)傳輸完成的信號cpu,但 cpu 忙 loading 重,沒有及時調(diào)用 i2c_reply 通知調(diào)用者;或者是 i2c 傳輸完成后,CPU 處于睡眠狀態(tài),由于 i2c 中斷無法喚醒系統(tǒng),系統(tǒng)醒了以后才返回,導(dǎo)致慢。(提升 user 線程優(yōu)先級 + 讓這一路 i2c bus 持鎖,可以優(yōu)化)

1、簡介

strace:用來跟蹤 Linux 進程執(zhí)行時的系統(tǒng)調(diào)用和接收所接收的信號,可以跟蹤到一個進程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù),返回值,執(zhí)行消耗的時間。

ftrace:是一個 Linux 內(nèi)核函數(shù)跟蹤器,function tracer,旨在幫助開發(fā)人員和系統(tǒng)設(shè)計者可以找到內(nèi)核內(nèi)部發(fā)生的事情,從 Linux-2.6 內(nèi)核就支持了。

atrace:Android tracer,使用 ftrace 來跟蹤 Android 上層的函數(shù)調(diào)用。

systrace:Android 的 trace 數(shù)據(jù)分析工具,將 atrace 采集上來的數(shù)據(jù),以圖形化的方式展現(xiàn)出來。systrace 是分析 Android 設(shè)備性能的主要工具。不過,它實際上是多種其他工具的封裝容器:它是 atrace 的主機端封裝容器。atrace 是用于控制用戶空間跟蹤和設(shè)置 ftrace 的設(shè)備端可執(zhí)行文件,也是 Linux 內(nèi)核中的主要跟蹤機制。systrace 使用 atrace 來啟用跟蹤,然后讀取 ftrace 緩沖區(qū)并將其全部封裝到一個獨立的 HTML 查看器中。

perfetto:新一代 systrace 分析工具,使用 perfetto 工具,可以通過 Android 調(diào)試橋 (ADB) 在 Android 設(shè)備上收集性能信息。perfetto 從您的設(shè)備上收集性能跟蹤數(shù)據(jù)時會使用多種來源,例如:使用 ftrace 收集內(nèi)核信息、使用 atrace 收集服務(wù)和應(yīng)用中的用戶空間注釋、使用 heapprofd 收集服務(wù)和應(yīng)用的本地內(nèi)存使用情況信息。

在 Android 9 (P) 及以上版本平臺都可用,但只有在 Android 11 (R) 及以上的版本中才默認啟用。在Android 9 (P) 和 10 (Q) 上,你需要執(zhí)行下面的命令,以確保在一切開始之前跟蹤服務(wù)正常啟動:

# Needed only on Android 9 (P) and 10 (Q) on non-Pixel phones.adb shell setprop persist.traced.enable 1

perfconv:CPU Freq 分析工具

LTR:Long Trace Recoder,可以錄制長達半個小時的 trace,主要用于分析游戲場景。

因此,首先需要學(xué)習(xí) ftrace,它是其他 trace 的基礎(chǔ)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207920
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1452

    瀏覽量

    122261
收藏 人收藏

    評論

    相關(guān)推薦

    Linux在醫(yī)療電子上的應(yīng)用案例分析--谷歌GDG開源Linux

    專輯:谷歌GDG開源linux開發(fā)經(jīng)驗及典型應(yīng)用案例分享講座視頻簡介:本專題將介紹嵌入式Linux的最新發(fā)展與知識框架,并通過分析一個Linux
    發(fā)表于 08-06 10:05

    嵌入式Linux的啟動流程簡介

    目錄嵌入式 Linux 啟動流程簡介啟動流程Bootloader 簡介市面上可見的 bootloader入式 Linux 啟動流程簡介對于一
    發(fā)表于 11-04 09:04

    嵌入式Linux開發(fā)簡介

    目錄1、嵌入式Linux開發(fā)簡介1.1嵌入式系統(tǒng)1.2嵌入式操作系統(tǒng)簡介1.2.1嵌入式操作系統(tǒng)的發(fā)展1.2.2幾種代表性嵌入式操作系統(tǒng)1.3嵌入式Linux
    發(fā)表于 12-14 08:24

    Linux簡介

    Linux簡介Linux是一款優(yōu)秀的計算機操作系統(tǒng)LINUX是在UNIX基礎(chǔ)上開發(fā),具有UNIX全部功能。1991年,芬蘭赫爾辛基大學(xué)的學(xué)生Linus Torvalds開發(fā)了
    發(fā)表于 12-16 06:00

    OpenHarmony常用的性能分析工具

    1、OpenHarmony性能分析工具Bytrace介紹一、Bytrace簡介bytrace是開發(fā)人員用于追蹤進程軌跡、查看性能的一種工具,主要對內(nèi)核ftrace進行了封裝和擴展,來支持用戶態(tài)的打點
    發(fā)表于 03-21 09:42

    Linux源代碼簡介

     Linux源代碼簡介歡迎進入Linux的世界!隨著人們對開放源代碼軟件熱情的不斷高漲,Linux也受到了越來越多的關(guān)注。Linux
    發(fā)表于 02-10 13:54 ?78次下載

    第1章 Linux簡介和安裝

    有關(guān)于linux簡介
    發(fā)表于 12-20 22:16 ?0次下載

    基于linuxFtrace簡介、案例、結(jié)果讀法以及用vim進行Ftrace折疊的解析

    Ftrace簡介,Ftrace案例,Ftrace結(jié)果怎么讀, vim進行Ftrace折疊。
    的頭像 發(fā)表于 01-24 14:14 ?4228次閱讀
    基于<b class='flag-5'>linux</b>的<b class='flag-5'>Ftrace</b><b class='flag-5'>簡介</b>、案例、結(jié)果讀法以及用vim進行<b class='flag-5'>Ftrace</b>折疊的解析

    ADM1266 Linux API和Python庫簡介

    ADM1266 Linux API和Python庫簡介
    發(fā)表于 05-17 10:50 ?6次下載
    ADM1266 <b class='flag-5'>Linux</b> API和Python庫<b class='flag-5'>簡介</b>

    Linux內(nèi)核ftrace的學(xué)習(xí)

    目錄 1. 前言 2. ARM64棧幀結(jié)構(gòu) 3. 編譯階段 3.1 未開啟ftrace時的blk_update_request 3.2 開啟ftrace時的blk_update_request 4.
    的頭像 發(fā)表于 08-13 17:33 ?3032次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核<b class='flag-5'>ftrace</b>的學(xué)習(xí)

    使用Ftrace研究Linux內(nèi)核

    Ftrace通過tracefs文件系統(tǒng)的控制文件來進行調(diào)試。如果內(nèi)核構(gòu)建階段配置ftrace,默認會掛載tracefs到/sys/kernel/tracing,也可以在運行環(huán)境手動掛載
    的頭像 發(fā)表于 05-05 10:00 ?1518次閱讀

    Ftrace使用tracefs文件系統(tǒng)保存控制文件

    FtraceLinux Kernel的官方tracing系統(tǒng),支持Function trace、靜態(tài)tracepoint、動態(tài)Tracepoint的跟蹤,還提供各種Tracer,用于統(tǒng)計最大irq延遲、最大函數(shù)調(diào)用棧大小、調(diào)度事件等。
    的頭像 發(fā)表于 02-22 14:34 ?1035次閱讀

    萬字長文解讀Linux內(nèi)核追蹤機制

    Linux 存在眾多 tracing tools,比如 ftrace、perf,他們可用于內(nèi)核的調(diào)試、提高內(nèi)核的可觀測性。
    的頭像 發(fā)表于 06-11 11:05 ?664次閱讀
    萬字長文解讀<b class='flag-5'>Linux</b>內(nèi)核追蹤機制

    Arch Linux RISC-V 端口及相關(guān)作品簡介

    Arch Linux RISC-V 端口及相關(guān)作品簡介 演講ppt分享
    發(fā)表于 07-17 16:34 ?5次下載

    Linux ftrace工具宏定義

    宏定義 在使用 ftrace 之前,需要確保內(nèi)核配置編譯了其配置選項。 CONFIG_FTRACE=y CONFIG_HAVE_FUNCTION_TRACER=y
    的頭像 發(fā)表于 07-20 11:18 ?544次閱讀