[*] Show timing information on printks 打開后,每個(gè)printk的前面都會(huì)顯示時(shí)間戳 主要用來測(cè)量?jī)?nèi)核啟動(dòng)過程各個(gè)階段的耗時(shí) initcall_debug 眾所周知, kernel 啟動(dòng)時(shí)會(huì)執(zhí)行不同等級(jí)的 initcall ,而每個(gè) initcall 的耗時(shí)也是可以統(tǒng)計(jì)的。 在 kernel 的 cmdline 中加入?yún)?shù) initcall_debug=1 : initcall_debug = 1 setargs_nand =setenv bootargs console= ${console} earlyprintk= ${earlyprintk} root= ${nand_root} initcall_debug= ${initcall_debug} init= ${init} 開啟后,就" />

chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

幾種統(tǒng)計(jì)內(nèi)核啟動(dòng)耗時(shí)的方法

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-04 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

啟動(dòng)耗時(shí)統(tǒng)計(jì)

printk time

打開kernel配置:

kernel hacking --- >
[*] Show timing information on printks

打開后,每個(gè)printk的前面都會(huì)顯示時(shí)間戳

主要用來測(cè)量?jī)?nèi)核啟動(dòng)過程各個(gè)階段的耗時(shí)

initcall_debug

眾所周知,kernel啟動(dòng)時(shí)會(huì)執(zhí)行不同等級(jí)的initcall,而每個(gè)initcall的耗時(shí)也是可以統(tǒng)計(jì)的。

kernelcmdline中加入?yún)?shù)initcall_debug=1

initcall_debug=1
setargs_nand=setenv bootargs console=${console} earlyprintk=${earlyprintk} root=${nand_root} initcall_debug=${initcall_debug} init=${init}

開啟后,就能打印每個(gè)initcall函數(shù)調(diào)用及耗時(shí)。

bootgraph

內(nèi)核自帶了一個(gè)工具用于統(tǒng)計(jì)啟動(dòng)時(shí)間:scripts/bootgraph.pl

使用該工具需要打開內(nèi)核配置CONFIG_PRINTK_TIME=y,并且在cmdline中加上"initcall_debug=1"

系統(tǒng)啟動(dòng)之后,執(zhí)行命令:

dmesg|perl $(kernel_dir)/script/bootgraph.pl > out.svg

用瀏覽器查看out.svg文件,可以看到內(nèi)核啟動(dòng)過程中各個(gè)階段的耗時(shí)。

這個(gè)工具有點(diǎn)類似于perf的火焰圖,可以統(tǒng)計(jì)啟動(dòng)各階段的耗時(shí)。

bootchart

除了內(nèi)核自帶的工具,也有開源的工具可用:bootchart。

bootchart是一個(gè)用于linux啟動(dòng)過程性能分析的開源軟件工具,在系統(tǒng)啟動(dòng)過程自動(dòng)收集CPU占用率、進(jìn)程等信息,并以圖形方式顯示分析結(jié)果,可用作指導(dǎo)優(yōu)化系統(tǒng)啟動(dòng)過程。

  • 修改kernel cmdline。將其中的init修改為“init=/sbin/bootchartd”。
  • 收集信息。bootchartd會(huì)從/proc/stat,/proc/diskstat,/proc/[pid]/stat中采集信息,經(jīng)過處理后保存為bootchart.tgz文件
  • 轉(zhuǎn)換圖片。在pc上通過pybootchartgui.py工具將bootchart.tgz轉(zhuǎn)換為bootchart.png,方便分析

最后也會(huì)成圖片供做分析,例如:

圖片

bootchar主要用來測(cè)量掛載文件系統(tǒng)到主應(yīng)用程序啟動(dòng)過程中的耗時(shí)

gpio+示波器

可以找一個(gè)在系統(tǒng)啟動(dòng)過程中空閑的GPIO,在適當(dāng)位置設(shè)置GPIO電平。

通過示波器抓取波形可以得到各階段耗時(shí)。

通常該方法被用來 測(cè)量整個(gè)啟動(dòng)的耗時(shí),或者各階段的耗時(shí) ,該方法也是用的比較多的。

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

    關(guān)注

    113

    文章

    6705

    瀏覽量

    189292
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41443
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213839
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問DM8168上怎么統(tǒng)計(jì)算法程序的耗時(shí)?

    大家好!請(qǐng)問,CCSv6單獨(dú)連接DM8168上的DSP C674x后,已經(jīng)可以運(yùn)行算法程序,不過怎么統(tǒng)計(jì)該算法程序的耗時(shí)
    發(fā)表于 02-20 10:45

    幾種Linux下后臺(tái)啟動(dòng)jar包的方法介紹

    ,但是窗口被鎖定,當(dāng)我們關(guān)閉窗口或Ctrl + C打斷程序運(yùn)行時(shí),程序就會(huì)退出,這肯定不是我們想要的,下面我介紹幾種Linux下后臺(tái)啟動(dòng)jar包的方法
    發(fā)表于 07-22 08:02

    統(tǒng)計(jì)的學(xué)習(xí)方法

    統(tǒng)計(jì)學(xué)習(xí)方法感知機(jī)
    發(fā)表于 07-15 10:33

    內(nèi)核是如何啟動(dòng)

    UbuntuLTS16.04_x64系統(tǒng) *參考資料:《嵌入式Linux應(yīng)用開發(fā)手冊(cè)》*/目錄內(nèi)核啟動(dòng)流程分析之編譯體驗(yàn)與配置1、解壓縮2、打補(bǔ)丁3、配置3.1 方法一:修改...
    發(fā)表于 12-20 07:15

    Cortex-M3內(nèi)核HardFault錯(cuò)誤調(diào)試定位方法有哪幾種

    STM32程序進(jìn)入HardFault_Handler故障的原因有哪些?Cortex-M3內(nèi)核HardFault錯(cuò)誤調(diào)試定位方法有哪幾種?
    發(fā)表于 01-27 07:03

    分辨矩陣法耗時(shí)推算

    分辨矩陣法耗時(shí)推算:針對(duì)粗集理論的分辨矩陣方法求解知識(shí)約簡(jiǎn)過程中時(shí)空性能上存在的問題,提出分辨矩陣法耗時(shí)推算的原理和算法,包括2 個(gè)耗時(shí)段的推算及推算結(jié)果的可靠
    發(fā)表于 10-17 23:06 ?17次下載

    幾種啟動(dòng)電路圖

    幾種啟動(dòng)電路圖
    發(fā)表于 01-20 22:44 ?5639次閱讀
    <b class='flag-5'>幾種</b>軟<b class='flag-5'>啟動(dòng)</b>電路圖

    linux內(nèi)核啟動(dòng)內(nèi)核解壓過程分析

    linux啟動(dòng)時(shí)內(nèi)核解壓過程分析,一份不錯(cuò)的文檔,深入了解內(nèi)核必備
    發(fā)表于 03-09 13:39 ?1次下載

    Linux內(nèi)核文檔:ARM-啟動(dòng)

    Linux內(nèi)核文檔:ARM-啟動(dòng)
    發(fā)表于 10-30 10:15 ?6次下載
    Linux<b class='flag-5'>內(nèi)核</b>文檔:ARM-<b class='flag-5'>啟動(dòng)</b>

    用戶與內(nèi)核空間數(shù)據(jù)交換的方式之一:內(nèi)核啟動(dòng)參數(shù)

    Linux 提供了一種通過 bootloader 向其傳輸啟動(dòng)參數(shù)的功能,內(nèi)核開發(fā)者可以通過這種方式來向內(nèi)核傳輸數(shù)據(jù),從而控制內(nèi)核啟動(dòng)行為。
    發(fā)表于 05-14 15:42 ?607次閱讀

    內(nèi)核級(jí)HOOK的幾種實(shí)現(xiàn)方法與應(yīng)用說明

    實(shí)現(xiàn)內(nèi)核級(jí)HOOK 對(duì)于攔截、分析、跟蹤系統(tǒng)內(nèi)核起著致關(guān)重要的作用。實(shí)現(xiàn)的方法不同意味著應(yīng)用側(cè)重點(diǎn)的不同。如想要攔截NATIVE API 那么可能常用的就是HOOKSERVICE TABLE 的
    發(fā)表于 11-10 17:35 ?5次下載

    電機(jī)軟啟動(dòng)幾種方式_電機(jī)軟啟動(dòng)最簡(jiǎn)單的方法

    電機(jī)軟啟動(dòng)是一種通過逐漸升高電機(jī)電壓和電流,減小電機(jī)啟動(dòng)時(shí)的電流沖擊,保護(hù)電機(jī)和電網(wǎng),提高電機(jī)的使用壽命和運(yùn)行效率的控制方式。常見的電機(jī)軟啟動(dòng)方式包括以下幾種:   電壓降低
    發(fā)表于 03-09 09:35 ?1.1w次閱讀

    Linux內(nèi)核常用的幾種鏡像文件

    簡(jiǎn)述幾種常用的內(nèi)核鏡像文件:vmlinux、Image、zImage、bzImage、uImage、bootpImage、XIPImage等等。
    發(fā)表于 06-23 11:49 ?1.3w次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>常用的<b class='flag-5'>幾種</b>鏡像文件

    Linux內(nèi)核啟動(dòng)流程(下)

    本篇是通用內(nèi)核啟動(dòng)階段,一般是C語言實(shí)現(xiàn)。
    發(fā)表于 06-23 14:08 ?895次閱讀
    Linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>啟動(dòng)</b>流程(下)

    如何在內(nèi)核啟動(dòng)secondary cpu

    啟動(dòng)secondary cpu 內(nèi)核啟動(dòng)secondary cpu之前當(dāng)然需要為其準(zhǔn)備好執(zhí)行環(huán)境,因?yàn)?b class='flag-5'>內(nèi)核中cpu最終都將由調(diào)度器管理,故此時(shí)調(diào)度子系統(tǒng)應(yīng)該要初始化完成。 同時(shí)cpu
    的頭像 發(fā)表于 12-05 15:46 ?912次閱讀
    如何在<b class='flag-5'>內(nèi)核</b>中<b class='flag-5'>啟動(dòng)</b>secondary cpu