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

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

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

linux內(nèi)核支持硬中斷嵌套嗎

Linux閱碼場(chǎng) ? 來源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-04-10 15:57 ? 次閱讀

火焰圖中就是找不到函數(shù)名,懷疑符號(hào)被優(yōu)化

提問:yly

參與:自行車 成不曬???

你這個(gè)圖是有的內(nèi)核函數(shù)還是基本全部符號(hào)看不到,用的系統(tǒng)自帶的perf的話可以考慮下載對(duì)應(yīng)內(nèi)涵源碼,自己把perf在機(jī)器上重新編譯一下,我自己已經(jīng)遇到這個(gè)問題好幾次了

加noinline強(qiáng)制編譯器不要inline

Linux Trace 系統(tǒng)介紹

提問:李泉

參與:廣成子 guoqiang Gang 逸 游~游~游 pwl999 乘風(fēng)破浪的凌杰

mindjet mindmanager 畫的架構(gòu)圖:

ef29be12-b7a7-11ec-aa7f-dac502259ad0.jpg

ef40f0b4-b7a7-11ec-aa7f-dac502259ad0.jpg

有使用atrace+prefetto+sql前端工具組合

Vmcore 分析工具

提問:游~游~游

參與:pwl999

crash

linux-ramdump-parser

VAATools

死機(jī)后查看 Trace 日志

提問:晴天

參與:Gang ~jeff CH

crash工具支持?jǐn)U展的trace命令,如果有kdump的話,可以使用crash> trace show顯示trace日志

SOC 增加 Kdump 機(jī)制支持

參與:CH pwl999

Linux Kdump 機(jī)制詳解

??臻g的變量被踩定位

提問:Li

??臻g的變量進(jìn)入函數(shù)時(shí)不為空,到某一處就變?yōu)榭樟?,中間沒有對(duì)該變量的操作

參與:LittleEmpero 李佳龍 Gang ~jeff pwl999

大概率是運(yùn)行時(shí)棧內(nèi)存被踩了。

如果地址恒定,可以嘗試用gdb watch命令捕捉:


// 先打印這個(gè)棧變量的地址

p &stack_var

0x12345678

// 然后

watch *(long*)0x12345678

棧空間的變量,切換棧,地址就變了?可以嘗試把watch和command命令一起用,在函數(shù)入口下個(gè)斷點(diǎn),在command里下watch,這就相當(dāng)于動(dòng)態(tài)下觀測(cè)點(diǎn),這樣跑一晚上估計(jì)明天來了就看到踩內(nèi)存的現(xiàn)場(chǎng)了。

watch失效后,程序就停止了,怎么讓它繼續(xù)往下?在函數(shù)退出的地方,或者說在watch失效前的地方,再加個(gè)斷點(diǎn),在這個(gè)斷點(diǎn)的command里把觀測(cè)點(diǎn)刪掉。通常情況下,源代碼維度即使有多個(gè)返回點(diǎn),編譯成指令后,就只有一個(gè)返回點(diǎn),所有的return都會(huì)通過jxx指令跳到唯一返回點(diǎn),當(dāng)然通常情況下是這樣??梢杂胐isass指令對(duì)函數(shù)反匯編,然后看看ret指令是不是唯一的,如果ret指令是唯一的,就在ret指令前面用b*0x12345678這種語法,打一個(gè)絕對(duì)地址斷點(diǎn)。

沒有單獨(dú)delete watchpoints,del all就會(huì)把斷點(diǎn)這都刪除了。

可以試下objtrace??梢栽O(shè)置一個(gè)跟蹤點(diǎn),把一個(gè)函數(shù)參數(shù)設(shè)置為跟蹤點(diǎn),如果在其它地方訪問到(經(jīng)過了其它的函數(shù)參數(shù))會(huì)被捕捉到。Introduce objtrace trigger to trace the kernel object

objtrace

objtrace

Introduce objtrace trigger to trace the kernel object

謝歡:向linux內(nèi)核引進(jìn)object trace

gdb 錄制執(zhí)行

參與:Li LittleEmpero

rr-project

handlespeculativefault

提問:viho he參與:LittleEmpero 鄭楊

投機(jī)性缺頁異常處理

cache false sharing 定位

提問:nicolas參與:kaka 李佳龍 天空微藍(lán) pwl999

perf抓取cache miss類的event吧,再分析pc之間的關(guān)系,有沒有可能是false sharing 造成的

perf c2c

虛擬內(nèi)存增長(zhǎng)怎么分析

提問:Gang

ef50741c-b7a7-11ec-aa7f-dac502259ad0.png

參與:LittleEmpero rocklee viho he nicolas pwl999

感覺虛擬內(nèi)存即使泄露了應(yīng)該也沒啥風(fēng)險(xiǎn),64位系統(tǒng),虛擬地址空間大得很。不過不可否認(rèn)這肯定不正常,代碼肯定有問題。

每隔一段時(shí)間cat 一下/proc/PID/smap,然后對(duì)比之前的,先看看是哪段地址在增長(zhǎng)。是mmap忘了unmap,還是系統(tǒng)堆區(qū)在不斷增長(zhǎng),然后再具體分析。

手機(jī)上虛擬內(nèi)存可以直接看maps,結(jié)合smaps進(jìn)行分類,和對(duì)應(yīng)物理內(nèi)存大小,pc上應(yīng)該也是類似。

或許倒是可以從slab來查,到底是誰在申請(qǐng)大量虛擬內(nèi)存?vmareastructs。

Memory Overcommit

性能書籍推薦

參與:viho he guoqiang

soft lockup / hard lockup 定義

提問:游~游~游

參與:自行車 pwl999

softlockup是搶占被關(guān)了,hardlockup是中斷被關(guān)了

如果一個(gè)內(nèi)核線程關(guān)中斷(不持有鎖,只是關(guān)中斷)并且睡眠,會(huì)發(fā)生什么?

提問:viho he

參與:~jeff 逸 pwl999

關(guān)中斷的情況下, 如果發(fā)生調(diào)度,schedule()就會(huì)打開中斷,會(huì)引入中斷重入的問題,也對(duì)sched out進(jìn)程在不知情的情況下打開了中斷

huge page 對(duì)性能的提升

提問:viho he

參與:自行車 pwl999

huge page只是影響了tlb,對(duì)cache無影響吧

我們?yōu)槭裁匆?THP

Huge Page 是否是拯救性能的萬能良藥?

linux 內(nèi)核支持硬中斷的嵌套嗎?

提問:hw

參與:鄭楊 木子丶棒

Linux的中斷可以嵌套嗎?

FPGA開發(fā)者和內(nèi)核開發(fā)者打通

參與:guoqiang hw 小林

pmu 和 Ftrace 是兩把鑰匙

當(dāng)你去主導(dǎo)一個(gè)基于zynq的圖像質(zhì)檢項(xiàng)目,你就會(huì)發(fā)現(xiàn),負(fù)責(zé)項(xiàng)目研發(fā)的人如果有一個(gè)全通的,會(huì)事半功倍

整個(gè)華東區(qū)未來是全世界的電動(dòng)車產(chǎn)業(yè)集群,上海需要大量這樣的人,房子都不一定能趕上這類人才的薪資增長(zhǎng)率。

AI和HPC是性能需求的推動(dòng)者。其實(shí)還有個(gè)需求是美國(guó)實(shí)體名單帶來的,比如原來7nm的處理器,美國(guó)非不讓你,你就只能28nm,怎么在28nm的芯片上跑出來更高的性能。

AI 算法書籍推薦

參與:CH guoqiang

有兩個(gè)細(xì)分方向,如果圖像就是岡薩雷斯的數(shù)字圖像處理,如果是機(jī)器學(xué)習(xí),就是周志華的西瓜書:

這一本作為通識(shí) 了解入門級(jí)來看 看全貌用的:

這一本再看具體分類:(其它的 在深入細(xì)分方向就看paper 綜述、做實(shí)驗(yàn))

再往后 往深的走,就需要補(bǔ)數(shù)學(xué)了,優(yōu)化理論等:(目前人工智能的本質(zhì)其實(shí)就是求解優(yōu)化問題,獲取次優(yōu)解)

dma-buf

參與:guoqiang viho he Peter 孫雷 Oops Wenhui

dma-buf的底層機(jī)制,安卓的ION也是基于此搭建出來的。但是ION在staging過程中受阻 ,最終upstream放棄了合入ION,而由John Stultz主領(lǐng),在同樣的dma-buf機(jī)制上,做了一個(gè)叫DMA-BUF Heaps的東西來替代ION。安卓社區(qū)也列了相應(yīng)計(jì)劃從ION遷移到DMA-BUF Heaps:LVC21-120 Moving to DMA BUF Heaps Now is the time!,從dma-buf往上,ION也好,dma-buf heaps也罷,這一整套方案就是想搞定數(shù)據(jù)在這些眾多硬件之間流轉(zhuǎn)的零拷貝難題:

f02ad120-b7a7-11ec-aa7f-dac502259ad0.png

啥應(yīng)用場(chǎng)景有這樣的需求呢?目前需求最大的就是圖形圖像領(lǐng)域,圖像這種大數(shù)據(jù)處理不共享太慢,dma來回搬太慢。這個(gè)圖里,7個(gè)硬件全要在同一塊數(shù)據(jù)上做讀寫。如果用拷貝、搬運(yùn)的話,想想這個(gè)性能損耗有多大,分析以后,可能還要送給GPU去繪圖(比如手機(jī)上人臉識(shí)別,打出來的那個(gè)框就是GPU繪的)。

在圖像處理的時(shí)候,比如一幀圖像,可能會(huì)經(jīng)過isp, 畸變校正,縮放裁剪,最后可能會(huì)送到ai模塊作分析 這個(gè)過程中的每個(gè)環(huán)節(jié)幾乎都是硬件來完成的,如果單純的使用dma來搬數(shù)據(jù),效率就很低了。

TEE也來做零拷貝,會(huì)不會(huì)有安全隱患?share memory本來就是暴露給linux(REE)的,本來就是安全薄弱的環(huán)節(jié)。加上Infirmation flow integrity tag checking 就可以安全的share了 Google doc怎么share 內(nèi)存就可以怎么share。

dma-buf學(xué)習(xí)分享

Destaging ION

DMA-BUF系列文章

宋寶華:世上最好的共享內(nèi)存(Linux共享內(nèi)存最透徹的一篇)

RR實(shí)時(shí)調(diào)度策略,時(shí)間片一般是多少?

提問:rocklee

參與:pwl999 viho he

f0469900-b7a7-11ec-aa7f-dac502259ad0.png

Linux schedule 2、調(diào)度算法

有沒有這種變態(tài)用法?A B線程同一優(yōu)先級(jí),A線程是fifo調(diào)度,B線程是RR調(diào)度,這時(shí)系統(tǒng)怎么調(diào)度?看了一下代碼,同一優(yōu)先級(jí)是按先后順序放在同一個(gè)鏈表上的,如果當(dāng)前進(jìn)程是 FIFO 會(huì)一直跑完為止,如果當(dāng)前進(jìn)程是 RR 時(shí)間片用完換鏈表上的下一個(gè)進(jìn)程。涉及到的關(guān)鍵函數(shù)有 tasktickrt()、picknextrtentity()、enqueuert_entity()。

原文標(biāo)題:彭偉林:火焰圖、trace工具、dma-buf和圖書推薦

文章出處:【微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭菁

聲明:本文內(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)注

    452

    文章

    50206

    瀏覽量

    420924
  • 數(shù)字圖像處理
    +關(guān)注

    關(guān)注

    7

    文章

    103

    瀏覽量

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

    關(guān)注

    1

    文章

    316

    瀏覽量

    21608

原文標(biāo)題:彭偉林:火焰圖、trace工具、dma-buf和圖書推薦

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)核中斷設(shè)計(jì)與實(shí)現(xiàn)

    裸機(jī)編程中使用中斷比較麻煩,需要配置寄存器、使能IRQ等等。而在Linux驅(qū)動(dòng)編程中,內(nèi)核提供了完善的終端框架,只需要申請(qǐng)中斷,然后注冊(cè)中斷
    發(fā)表于 07-29 08:57 ?765次閱讀

    STM32中斷嵌套NVIC快速入門

    //CM3 有 最多240個(gè)中斷(通常外部中斷寫作IRQs),就是 軟件上說的 IRQ CHANAELx(中斷通道號(hào)x) 每個(gè)中斷有自己的可編程的
    發(fā)表于 02-11 14:08 ?127次下載

    Linux 2.4.x內(nèi)核中斷機(jī)制

    情況下,軟中斷和信號(hào)有些類似,同時(shí),軟中斷又是和中斷相對(duì)應(yīng)的,中斷是外部設(shè)備對(duì)CPU的
    發(fā)表于 11-02 11:01 ?0次下載

    linux內(nèi)核中斷機(jī)制

    如果讓內(nèi)核定期對(duì)設(shè)備進(jìn)行輪詢,以便處理設(shè)備,那會(huì)做很多無用功,因?yàn)橥庠O(shè)的處理速度一般慢于CPU,而CPU不能一直等待外部事件。所以能讓設(shè)備在需要內(nèi)核時(shí)主動(dòng)通知內(nèi)核,會(huì)是一個(gè)聰明的方式,這便是
    發(fā)表于 11-14 15:48 ?3123次閱讀

    STM32中斷嵌套NVIC快速入門

    寄存器 】.由于CM3支持 硬件中斷嵌套,所以可以有 256 級(jí)的可編程優(yōu)先級(jí)和 256級(jí)中斷嵌套【 書上稱:搶占(preempt) 優(yōu)先級(jí)
    發(fā)表于 11-30 03:18 ?972次閱讀

    Linux驅(qū)動(dòng)技術(shù)之一內(nèi)核中斷

    在硬件上,中斷源可以通過中斷控制器向CPU提交中斷,進(jìn)而引發(fā)中斷處理程序的執(zhí)行,不過這種硬件中斷體系每一種CPU都不一樣,而
    發(fā)表于 05-08 13:49 ?630次閱讀

    MCU中斷嵌套總結(jié)--51,STM32,DSP,ARM

    MCU中斷嵌套總結(jié)--51,STM32,DSP,ARM一、51單片機(jī)1、默認(rèn)中斷優(yōu)先級(jí)(邏輯優(yōu)先級(jí))為:2、IP寄存器設(shè)置了某一位(物理優(yōu)先級(jí)),比如:PS (IP.4):串行口中斷優(yōu)
    發(fā)表于 11-05 20:35 ?7次下載
    MCU<b class='flag-5'>中斷</b><b class='flag-5'>嵌套</b>總結(jié)--51,STM32,DSP,ARM

    【CC2530授課筆記】⑥ 外部中斷中斷嵌套 (51內(nèi)核單片機(jī))

    摘要本文章主要介紹了CC2530外部中斷的使用,通過兩個(gè)按鍵P1.2和P0.1實(shí)現(xiàn)兩個(gè)中斷,打斷主函數(shù),實(shí)現(xiàn)嵌套的功能。
    發(fā)表于 11-22 12:51 ?3次下載
    【CC2530授課筆記】⑥ 外部<b class='flag-5'>中斷</b>及<b class='flag-5'>中斷</b><b class='flag-5'>嵌套</b> (51<b class='flag-5'>內(nèi)核</b>單片機(jī))

    linux內(nèi)核-時(shí)鐘中斷

    在所有的外部中斷中,時(shí)鐘中斷起著特殊的作用,其作用遠(yuǎn)非單純的計(jì)時(shí)所能相比。當(dāng)然,即使是單純的計(jì)時(shí)也已經(jīng)足夠重要了。別的不說,沒有正確的時(shí)間關(guān)系,你用來重建內(nèi)核的工具make就不能正常運(yùn)行了,因?yàn)?/div>
    發(fā)表于 11-23 17:51 ?12次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>-時(shí)鐘<b class='flag-5'>中斷</b>

    [IC]淺談嵌入式MCU軟件開發(fā)之中斷優(yōu)先級(jí)與中斷嵌套

    [IC]淺談嵌入式MCU軟件開發(fā)之中斷優(yōu)先級(jí)與中斷嵌套
    發(fā)表于 12-05 10:21 ?11次下載
    [IC]淺談嵌入式MCU軟件開發(fā)之<b class='flag-5'>中斷</b>優(yōu)先級(jí)與<b class='flag-5'>中斷</b><b class='flag-5'>嵌套</b>

    Linux內(nèi)核外部中斷解析(下)

    上篇文章我們從內(nèi)核工程師的角度剖析了內(nèi)核的外部中斷,這節(jié)我們從BSP工程師的角度剖析一下外部中斷。
    發(fā)表于 06-23 15:19 ?405次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>外部<b class='flag-5'>中斷</b>解析(下)

    Cortex-M 內(nèi)核中斷/異常系統(tǒng)、中斷優(yōu)先級(jí)/嵌套 詳解

    Cortex-M 內(nèi)核中斷/異常系統(tǒng)、中斷優(yōu)先級(jí)/嵌套 詳解
    的頭像 發(fā)表于 09-27 15:29 ?1930次閱讀
    Cortex-M <b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>/異常系統(tǒng)、<b class='flag-5'>中斷</b>優(yōu)先級(jí)/<b class='flag-5'>嵌套</b> 詳解

    中斷中斷介紹

    ? 中斷是由外部事件引起的因此具有隨機(jī)性和突發(fā)性;中斷是否可以嵌套的,是否有優(yōu)先級(jí)(由硬件設(shè)計(jì)體系決定)。 ? 軟
    的頭像 發(fā)表于 11-07 17:02 ?825次閱讀

    什么是LInux 操作系統(tǒng)中斷

    進(jìn)程來持有CPU進(jìn)行需要的操作! 有了中斷之后,提升了操作系統(tǒng)的性能!可以異步并行處理很多任務(wù)! 軟中斷(80中斷) 由CPU產(chǎn)生的;CPU檢查到程序代碼段發(fā)生異常會(huì)切換到內(nèi)核態(tài);
    的頭像 發(fā)表于 11-10 11:29 ?575次閱讀
    什么是<b class='flag-5'>LInux</b> 操作系統(tǒng)<b class='flag-5'>中斷</b>

    LInux 操作系統(tǒng)中斷介紹

    進(jìn)程來持有CPU進(jìn)行需要的操作! 有了中斷之后,提升了操作系統(tǒng)的性能!可以異步并行處理很多任務(wù)! 軟中斷(80中斷) 由CPU產(chǎn)生的;CPU檢查到程序代碼段發(fā)生異常會(huì)切換到內(nèi)核態(tài);
    的頭像 發(fā)表于 11-13 11:36 ?843次閱讀
    <b class='flag-5'>LInux</b> 操作系統(tǒng)<b class='flag-5'>中斷</b>介紹