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

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

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

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

描述mcp內(nèi)核常見問題的排查方法幫助快速排查定位問題

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:孫鵬 ? 2022-07-12 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

任何系統(tǒng),硬件故障和軟件故障都不可避免。比如車載系統(tǒng),由于汽車行駛過程中的震動,發(fā)熱,電瓶饋電等,很容易影響電子元件的特性,這對設(shè)備是致命的影響,會直接改變程序邏輯及運行結(jié)果從而產(chǎn)生各種不可預(yù)測的異常情況,本文描述常見問題的排查方法幫助快速排查定位問題所在也提出一些系統(tǒng)性設(shè)計來規(guī)避這些問題.

啟動流程初判斷

我們對穩(wěn)定性分析第一手分析本上是從debug log開始,它可以直觀的給我們信息反饋, 想對debug log 中的問題進行判斷還需要我們對設(shè)備的啟動流程有充分的了解,在什么階段使用了哪些資源同時又有哪些硬件參與其中.

通過分割流程,細化加載過程可以對當(dāng)前疑問點從合理性進行解釋,以高通啟動為例:

poYBAGLMzWuAI8qVAABC0Jsr5OQ438.jpg

從啟動流程可以知道每一個階段的啟動都包含著數(shù)據(jù)完整性檢查,當(dāng)secboot開啟時還有合法性檢查; 通過這個幫助我們初步判斷異常位置明確下一步分析方向;

Nand Flash排查

針對nand flash的分析要先了解其構(gòu)造;

Flash的內(nèi)部存儲是MOSFET,里面有個懸浮門(Floating Gate),是真正存儲數(shù)據(jù)的單元。

數(shù)據(jù)在Flash內(nèi)存單元中是以電荷(electrical charge) 形式存儲的。存儲電荷的多少,取決于圖中的外部門(external gate)所被施加的電壓,其控制了是向存儲單元中沖入電荷還是使其釋放電荷。而數(shù)據(jù)的表示,以所存儲的電荷的電壓是否超過一個特定的閾值Vth來表示,因此,F(xiàn)lash的存儲單元的默認值,不是0(,而是1,而如果將電荷釋放掉,電壓降低到一定程度,表述數(shù)字0。

pYYBAGLMzYiAHsmJAACDCtdAqQM143.jpg

Nand Flash 存儲結(jié)構(gòu)

Nand 的缺點數(shù)據(jù)讀寫容易出錯,所以一般都需要有對應(yīng)的軟件或者硬件的數(shù)據(jù)校驗算法,統(tǒng)稱為ECC, 每一個頁,對應(yīng)還有一塊區(qū)域,叫做空閑區(qū)域(spare area)/冗余區(qū)域(redundant area),而Linux系統(tǒng)中,一般叫做OOB(Out Of Band),這個區(qū)域,是最初基于Nand Flash的硬件特性:數(shù)據(jù)在讀寫時候相對容易錯誤,所以為了保證數(shù)據(jù)的正確性,必須要有對應(yīng)的檢測和糾錯機制,此機制被叫做EDC(Error Detection Code)/ECC(Error Code Correction, 或者 Error Checking and Correcting),所以設(shè)計了多余的區(qū)域,用于放置數(shù)據(jù)的校驗值。

Oob的讀寫操作,一般是隨著頁的操作一起完成的,即讀寫頁的時候,對應(yīng)地就讀寫了oob。

關(guān)于oob具體用途,總結(jié)起來有:

1.標(biāo)記是否是壞快

2.存儲ECC數(shù)據(jù)

poYBAGLMzaSAMVN_AACVlX9eUac431.jpg

Nand Flash 結(jié)構(gòu)

壞塊

為什么會出現(xiàn)壞塊?

由于 NAND Flash的工藝不能保證NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生產(chǎn)中及使用過程中會產(chǎn)生壞塊。壞塊的特性是:當(dāng)編程/擦除這個塊時,不能將某些位拉高,這會造成Page Program和Block Erase操作時的錯誤,相應(yīng)地反映到Status Register的相應(yīng)位。

壞塊的分類

總體上,壞塊可以分為兩大類

(1) 固有壞塊 這是生產(chǎn)過程中產(chǎn)生的壞塊,一般 芯片 原廠都會在出廠時都會將壞塊第一個page的spare area的第6個byte標(biāo)記為不等于0xff的值。

(2)使用壞塊 這是在NAND Flash使用過程中,如果Block Erase或者Page Program錯誤,就可以簡單地將這個塊作為壞塊來處理,這個時候需要把壞塊標(biāo)記起來。

壞塊如何檢測

壞塊的判斷方法非常簡單對目標(biāo)塊擦除就可判斷是否是壞塊。

壞塊的影響性

判斷壞塊并不是技術(shù)難點,問題是在于當(dāng)產(chǎn)生壞塊時系統(tǒng)穩(wěn)定性如何去保障,這里就涉及到項目前期對整體穩(wěn)定性設(shè)計;

根據(jù)固件格式大致可以分為三種:只讀鏡像,只讀文件系統(tǒng)和數(shù)據(jù)分區(qū)

1.只讀鏡像

這里只讀鏡像在固件中SBL ,LK,Boot.img 等等鏡像文件, 當(dāng)鏡像存儲區(qū)域由于某種異常產(chǎn)生壞塊就會破壞數(shù)據(jù)的完整性;

只讀鏡像大部分只會在加載過程中讀取,后續(xù)運行在內(nèi)存中,所以問題會在壞塊產(chǎn)生后的下一次啟動;

2.只讀文件系統(tǒng)

文件系統(tǒng)跟只讀鏡像比較類似,差別在于文件系統(tǒng)并不是一次全部加載校驗換句話說就是用哪里加載哪里,同樣原理如果加載數(shù)據(jù)因壞塊而導(dǎo)致失效系統(tǒng)也會崩潰;

3.數(shù)據(jù)分區(qū)

數(shù)據(jù)分區(qū)基本操作就是寫入和擦除,所以當(dāng)壞塊產(chǎn)生時影響的是在分區(qū)中存儲的數(shù)據(jù);

數(shù)據(jù)存儲根據(jù)使用功能的不同丟失的影響性也存在較大差異,文件系統(tǒng)中文件數(shù)據(jù)丟失表現(xiàn)為文件數(shù)據(jù)無法訪問或者文件不存在訪問失敗;但當(dāng)重要配置文件丟失, 證書文件,加密裸數(shù)據(jù)丟失同樣會導(dǎo)致系統(tǒng)崩潰無法正常使用;

預(yù)防性設(shè)計

萬幸的是使用過程中產(chǎn)生連續(xù)三個壞塊的概率極低,這就給我們機會針對壞塊預(yù)防性設(shè)計;

那我們?nèi)绾稳ソ鉀Q這個問題呢?

了解壞塊的產(chǎn)生和影響性,可以知道想要規(guī)避壞塊需要我們在系統(tǒng)設(shè)計初就要考慮,在設(shè)備使用過程中有壞塊產(chǎn)生時如何保證系統(tǒng)的穩(wěn)定性;

針對產(chǎn)生的影響性加強系統(tǒng)穩(wěn)定性設(shè)計:

1.只讀鏡像&只讀文件系統(tǒng)

加大分區(qū)冗余度是可以降低壞塊是在數(shù)據(jù)區(qū)的概率也會避免連續(xù)壞塊導(dǎo)致燒錄失敗但會加大空間損耗,不過由于只讀鏡像基本不大可以選擇加大冗余;

只是降低損壞概率還是完全無法保證系統(tǒng)的穩(wěn)定性, 鏡像分區(qū)設(shè)計可以幫助解決這個問題,通過啟動流程異常檢測可以幫助我們選擇完整分區(qū)進行加載并恢復(fù)損壞分區(qū);

2種設(shè)計可以大大增加系統(tǒng)整體的穩(wěn)定性,不過多分區(qū)設(shè)計要注意鄰區(qū)干擾要適當(dāng)?shù)姆珠_;

2.數(shù)據(jù)分區(qū)

根據(jù)存儲數(shù)據(jù)的必要性可以分為重要分區(qū)和普通分區(qū);

多分區(qū)設(shè)計也適用于重要分區(qū) 通過多個分區(qū)保存重要文件和數(shù)據(jù)可以避免數(shù)據(jù)缺失而引發(fā)的問題;

分區(qū)文件丟失通過備份分區(qū)恢復(fù)文件;

分區(qū)損壞先格式化問題分區(qū)后在通過備份分區(qū)恢復(fù)文件;

由于空間限制重要文件和數(shù)據(jù)要與普通分區(qū)

普通分區(qū)由于壞塊導(dǎo)致的異常完全可以通過格式化進行恢復(fù);

Nand Flash Bit Flip

由于Nand物理特性最常見的異常問題就是產(chǎn)生Bit Flip(位反轉(zhuǎn)) ;

什么是Bit Flip?

所謂的位反轉(zhuǎn),bit flip,指的是原先Nand Flash中的某個bit位,發(fā)生電容的0和1狀態(tài)的切換, 這種情況稱之為位反轉(zhuǎn)(Bit Flip)

Bit Flip 產(chǎn)生的原因?

借鑒業(yè)內(nèi)總結(jié)產(chǎn)生Bit Flip原因有如下幾種:

1.漂移效應(yīng)(Drifting Effects)

漂移效應(yīng)指的是,Nand Flash中cell的電壓值,慢慢地變了,變的和原始值不一樣了。

2.編程干擾所產(chǎn)生的錯誤(Program-Disturb Errors

此現(xiàn)象有時候也叫做,過度編程效應(yīng)(over-program effect)。 對于某個頁面的編程操作,即寫操作,引起非相關(guān)的其他的頁面的某個位跳變了。

3.讀操作干擾產(chǎn)生的錯誤(Read-Disturb Errors)

此效應(yīng)是,對一個頁進行數(shù)據(jù)讀取操作,卻使得對應(yīng)的某個位的數(shù)據(jù),產(chǎn)生了永久性的變化,即Nand Flash上的該位的值變了。

在Nand Flash使用過程中可以總結(jié)一下幾點:

1.讀取干擾:讀取 NAND flash page會對同一塊中附近的存儲單元產(chǎn)生干擾,過度讀取最終會導(dǎo)致存儲單元失去電荷丟失存儲的數(shù)據(jù)。

2. 長期數(shù)據(jù)保留:存儲在 NAND flash中的數(shù)據(jù)會隨著時間的推移而損壞(即使不使用)。

3. 高溫干擾:高溫可能會導(dǎo)致電荷逃逸。隨著溫度的升高,數(shù)據(jù)損壞的速度會迅速增加。

4. 電磁干擾:電磁干擾可能會導(dǎo)致電荷不穩(wěn)定。

Bit Flip 判斷方法

我們知道Nand Flash 為了防止Bit Flip設(shè)計了ECC算法進行糾正位反轉(zhuǎn)數(shù)據(jù),我們也可通過ECC來判斷Nand Flash是否產(chǎn)生了Bit Flip;

模擬page size 為2K ECC 能力為8 byte 的 ecc 分布 Layout

poYBAGLMzc-ARZAuAACHJiEsFJM948.jpg

2048-byte page, 8-bit ECC, 8-bit NAND Flash

通過Layout 可以發(fā)現(xiàn)ECC 其實和OOB區(qū)域是Nand Flash 存儲的一部分,Bit Flip 產(chǎn)生的隨機性同樣也會影響 ECC數(shù)據(jù)和OOB 數(shù)據(jù);

文件系統(tǒng)

這里要特殊說明下文件系統(tǒng), 文件系統(tǒng)的問題可以分為兩種:

1.由于異常掉電導(dǎo)致數(shù)據(jù)寫入未完成,或文件處理邏輯未完成產(chǎn)生的系統(tǒng)性校驗錯誤;

2.文件系統(tǒng)數(shù)據(jù)存儲格式完全依賴于文件系統(tǒng)類型, 同時讀寫分區(qū)的頻繁讀寫, 空間占用大也導(dǎo)致位反轉(zhuǎn)在文件系統(tǒng)區(qū)域概率大大增加;

分析方法

Nand Flash 的Meta Data數(shù)據(jù)能直觀反應(yīng)問題發(fā)生的原因,通過Dump Nand Flash數(shù)據(jù)可以快速排除存儲數(shù)據(jù)本身是否異常;

1.enable ECC dump Nand Flash數(shù)據(jù)就可以獲取當(dāng)前ECC值;

2.使用相同固件在另一塊Nand Flash 中操作步驟1 獲取正常的Meta Data;

3.通過對比不同Nand Flash相同數(shù)據(jù)的ECC 值,可以幫助我們確定是否發(fā)生過位反轉(zhuǎn);

而文件系統(tǒng)需要我們對文件系統(tǒng)機制有一定的了解進而分析異常原因;

Bit Flip 解決方法

多分區(qū),多冗余的方法也同樣可以解決Bit Flip 問題;

只讀鏡像

只讀鏡像分區(qū)可以依賴通用的錯誤處理來解決異常產(chǎn)生后的行為,這樣可以做到處理行為統(tǒng)一;

文件系統(tǒng)

如果有安全考慮的情況下只讀文件系統(tǒng)可以依賴dm-verity功能進行異常檢查, 由于文件系統(tǒng)的復(fù)雜性針對讀寫分區(qū)的異常檢測點需要我們從概率性和必要性進行考慮異常處理的合理性;

還有一種Nand Flash 處于不穩(wěn)定狀態(tài)的情況存在, 這種情況暫時沒有好的解決方案, 在重新燒錄后表現(xiàn)良好使用一段時間后產(chǎn)生大量Bit Flip 也無法通過檢測機制標(biāo)記成壞塊,對特征值(0x55 0xaa)驗證表現(xiàn)正常;

如果懷疑是這種問題可以創(chuàng)建由隨機數(shù)組成的文件對問題區(qū)域進行寫入和讀取驗證, 同時也可加上低溫環(huán)境加大問題復(fù)現(xiàn)幾率;

DDR Bit Flip

還有一種位反轉(zhuǎn)在DDR中產(chǎn)生, 這種情況下產(chǎn)生的異常結(jié)果與Nand Flash Bit Flip基本一致, 區(qū)別在于Nand Flash ECC糾正范圍內(nèi)可保證數(shù)據(jù)的完整性,而 DDR Bit Flip 會直接改變程序邏輯及運行結(jié)果從而產(chǎn)生各種不可預(yù)測的異常情況;

DDR 分析前我們已經(jīng)通過啟動流程定位啟動階段,排除了是由于Nand Flash數(shù)據(jù)導(dǎo)致的異常,所以我們需要對DDR 進行診斷是否發(fā)生異常。在系統(tǒng)側(cè)可以依賴內(nèi)存自我檢測方式Slub Debug、KASAN等進行檢測,但啟動階段會在各個階段遇到DDR Bit Flip無法依賴于系統(tǒng)側(cè)同時系統(tǒng)側(cè)診斷會受到內(nèi)存分配Layout限制無法全局診斷;

SBL 是很多平臺固件加載的第一啟動鏡像,在SBl運行階段大部分內(nèi)存以物理內(nèi)存方式直接訪問,這樣我們可以利用這一性質(zhì)進行內(nèi)存診斷,回讀校驗可以幫助我們快速定位問題點;

導(dǎo)致DDR Bit Flip原因有哪些?

DDR 本身損壞導(dǎo)致Bit Flip的情況非常多這源于DDR 設(shè)計的復(fù)雜性, 能夠通過回讀校驗直接檢測出來的我們都可歸于DDR 本身問題

舉兩個特殊又比較常見的例子進行說明:

Margin問題

Magin 問題通常都是時序問題,問題的來源可能是設(shè)計或者材料上的缺陷導(dǎo)致;

DDR 的0和1是由基本電路控制門電路最終達到標(biāo)準(zhǔn)的"0","1", 如下圖所示當(dāng)在T1時間內(nèi)無法達到電壓閾值H1或者L1門電路將會切到另一端也就是Margin 導(dǎo)致的Bit Flip;

poYBAGLMzfuAUThrAACeOdX8e8k245.jpg

Row Hammere

ROW HAMMER 特性,指DDR 內(nèi)存單元之間電子的互相影響,在足夠多臨近行列的訪問次數(shù)后讓某個單元的值從1變成0現(xiàn)象。

DDR 會定時刷新ceil電荷,但是每次對ceil讀寫的時候,會導(dǎo)致臨近的ceil電荷流失,如果針對特定ceil 進行高頻讀寫,那么會出現(xiàn)在刷新時間到達前,出現(xiàn)bitflip問題 。導(dǎo)致程序運行異常

Kernel crash

Kernel Crash的分析是一個老生常談的問題,本文從crash開始 通過啟動流程,Nand Flash,DDR逐一排除最后又回到crash 這里,Kernel 的分析方法與硬件設(shè)計和實際問題有關(guān),所以本文不做專項介紹;

小結(jié)

本文只是工作經(jīng)驗的總結(jié)并無太多細節(jié)展示,希望通過這種從宏觀到微觀剖析的方法幫助大家找到解決問題的思路。



審核編輯:劉清

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

    關(guān)注

    13

    文章

    4533

    瀏覽量

    87472
  • Nand flash
    +關(guān)注

    關(guān)注

    7

    文章

    243

    瀏覽量

    40830
  • MCP
    MCP
    +關(guān)注

    關(guān)注

    0

    文章

    273

    瀏覽量

    14391

原文標(biāo)題:mcp內(nèi)核穩(wěn)定性問題定位思路與方法

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用匯編知識排查疑難問題的方法

    那么,本篇文章,我將再介紹一個使用匯編知識排查疑難問題的方法,希望對大家有所幫助。
    發(fā)表于 07-27 10:31 ?869次閱讀

    《DDR常見問題簡單排查

    本文檔介紹了DDR詳見的問題排查方法 下載文檔
    發(fā)表于 09-12 10:37

    Flink on YARN(下):常見問題排查思路

    Cluster 的常見問題,分享相關(guān)問題的排查思路??蛻舳?b class='flag-5'>常見問題與排查思路▼ 應(yīng)用提交控制臺異常信息:Could not build the program from JAR fi
    發(fā)表于 10-10 14:14

    Flink on YARN(下):常見問題排查思路

    常見問題提供了排查思路,供大家參考,希望在應(yīng)用實踐中能夠?qū)Υ蠹矣兴?b class='flag-5'>幫助。▼ Apache Flink 社區(qū)推薦 ▼Apache Flink 及大數(shù)據(jù)領(lǐng)域頂級盛會 Flink Forward Asia
    發(fā)表于 10-14 15:04

    聲卡常見的7大問題是哪些?如何去排查?

    本文集中講解了電腦聲卡常見的7大問題,以及排查方法。
    發(fā)表于 05-31 07:14

    分享一種內(nèi)存泄漏定位排查技巧

    這里寫自定義目錄標(biāo)題1.對malloc,free進行封裝2.如何確定MALLOC_SIZE_OFFSET大小(編譯器malloc長度地址偏移)3.如何監(jiān)測內(nèi)存有無泄漏4.如何快速定位內(nèi)存泄漏位置5.
    發(fā)表于 12-17 08:13

    全志A40i網(wǎng)卡軟件問題排查

    將給大家介紹一些常用的網(wǎng)卡軟件問題對應(yīng)的排查手段。 02排查手段 這些排查手段可以幫助您在調(diào)試phy時有一個基本的調(diào)試思路,提到的一些工具可以幫助您
    發(fā)表于 07-28 11:23

    全志A40i應(yīng)用筆記 | 3種常見的網(wǎng)卡軟件問題以及排查思路

    顯示mac控制器probe失敗,常見原因是GPIO資源沖突導(dǎo)致。 解決方法: GPIO沖突會有報錯信息,根據(jù)報錯信息,查看GPIO沖突引腳。 查看以太網(wǎng)模塊是否配置。 問題描述3——以太網(wǎng)初始化報錯
    發(fā)表于 11-08 10:02

    GPIO無法觸發(fā)中斷常規(guī)排查方法有哪些?

    存在差異,我分享的僅僅是常規(guī)排查方法,供參考分析,希望對大家有幫助。紫光展銳官方線上支持平臺——坦克邦,可為客戶/開發(fā)者提供問題咨詢和需求對接。
    發(fā)表于 11-24 16:11

    直流穩(wěn)壓電源常見故障分析與排查

    直流穩(wěn)壓電源常見故障分析與排查(新型電源技術(shù)作業(yè)答案)-電子設(shè)計工程 2015年7月 直流穩(wěn)壓電源常見故障分析與排查
    發(fā)表于 09-29 12:16 ?45次下載
    直流穩(wěn)壓電源<b class='flag-5'>常見</b>故障分析與<b class='flag-5'>排查</b>

    交換機怎么排查常見的故障

    交換機怎么排查常見的故障
    發(fā)表于 10-09 14:29 ?6次下載

    小間距LED顯示屏故障排查方法

    保障顯示屏的正常運行至關(guān)重要。本文將介紹一些常見的小間距LED顯示屏故障排查方法,以幫助用戶快速定位
    的頭像 發(fā)表于 07-07 14:30 ?1853次閱讀
    小間距LED顯示屏故障<b class='flag-5'>排查</b><b class='flag-5'>方法</b>

    常見的電源適配器故障及排查方法有哪些?

    常見的電源適配器故障及排查方法有哪些? 電源適配器故障是使用電子設(shè)備時經(jīng)常遇到的問題之一。合理排查和解決電源適配器故障是確保電子設(shè)備正常運行的重要步驟。本文將詳細介紹
    的頭像 發(fā)表于 11-24 14:08 ?1.2w次閱讀

    晶振 “罷工”?揭秘常見故障及快速排查方法

    電子設(shè)備突然死機、時鐘不準(zhǔn)、通信中斷?很可能是晶振“鬧情緒”!作為電子電路的“心臟起搏器”,晶振一旦故障,整個系統(tǒng)都會陷入癱瘓。別慌!掌握這5個關(guān)鍵排查步驟,無需專業(yè)知識也能快速定位問題,讓你的設(shè)備
    的頭像 發(fā)表于 05-31 12:59 ?247次閱讀
    晶振 “罷工”?揭秘<b class='flag-5'>常見</b>故障及<b class='flag-5'>快速</b><b class='flag-5'>排查</b><b class='flag-5'>方法</b>

    吉時利2400數(shù)字源表常見故障排查與校準(zhǔn)教程

    。本文將詳細介紹吉時利2400數(shù)字源表的常見故障排查方法、校準(zhǔn)流程及維護注意事項,幫助用戶快速解決常見問
    的頭像 發(fā)表于 06-10 12:02 ?152次閱讀
    吉時利2400數(shù)字源表<b class='flag-5'>常見</b>故障<b class='flag-5'>排查</b>與校準(zhǔn)教程