日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

一口Linux
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
作者動(dòng)態(tài)
為什么對(duì)技術(shù)人員的考核大多都只看加班時(shí)間?
5天前
某通信公司筆試題,你會(huì)做幾道?
2星期前
10種初學(xué)者最常見的c語(yǔ)言段錯(cuò)誤實(shí)例及原因分析
05-30 12:13
linux系統(tǒng)監(jiān)控工具小神器:btop
05-17 17:37
有沒有權(quán)貴開后門讓子女做軟件開發(fā)人員?
05-10 23:36

記一次解決OTA死機(jī)重啟bug,如何分析與解決措施?!

背景:

平臺(tái):stm32mp151平臺(tái)

什么是OTA?

說(shuō)起OTA我們應(yīng)該都不陌生,它是一種可以為設(shè)備無(wú)損失升級(jí)系統(tǒng)的方式,能將新功能遠(yuǎn)程部署到產(chǎn)品上。

我們不僅可以通過(guò)網(wǎng)絡(luò)下載OTA升級(jí)包,也可以通過(guò)下載OTA升級(jí)包到SD卡或U盤后再對(duì)設(shè)備升級(jí)。

OTA下載方式:

  • 短信方式
  • PUSH方式
  • 網(wǎng)絡(luò)定制

本例網(wǎng)絡(luò)定制方式。

現(xiàn)象描述

本產(chǎn)品通過(guò)OTA升級(jí)測(cè)試,升級(jí)162次,死機(jī)重啟19次,如下圖所示:

死機(jī)重啟分析:

1. 為何oom會(huì)導(dǎo)致重啟?

當(dāng)需要申請(qǐng)物理頁(yè)面時(shí),首先使用快通道申請(qǐng)頁(yè)面,當(dāng)快通道申請(qǐng)不到將會(huì)進(jìn)入慢通道,當(dāng)慢通道也無(wú)法申請(qǐng)是將觸發(fā)oom-killer,正常情況下會(huì)殺死消耗物理頁(yè)面最多的進(jìn)程,而設(shè)備直接進(jìn)入PANIC然后重啟。當(dāng)申請(qǐng)物理頁(yè)面時(shí)free頁(yè)面很多情況也會(huì)存在頁(yè)面申請(qǐng)失敗的現(xiàn)象,一方面可能內(nèi)存外碎片化嚴(yán)重,另一方面可能是無(wú)法借用其他遷移類型內(nèi)存。因此盡量不要使能panic_on_oom,但設(shè)備使能該參數(shù),如下圖所示:

若去掉使能選項(xiàng),oom-killer將會(huì)殺掉物理頁(yè)最大進(jìn)程,因此應(yīng)該殺死藍(lán)牙進(jìn)程,在升級(jí)過(guò)程中,殺掉藍(lán)牙進(jìn)程對(duì)業(yè)務(wù)無(wú)任何影響。下圖為不開啟參數(shù)而殺掉最大物理頁(yè)進(jìn)程:

2. 為何free頁(yè)面很多但是還是會(huì)進(jìn)入oom?

當(dāng)前我們已經(jīng)知道因/proc/sys/vm/panic_on_oom=1 導(dǎo)致進(jìn)入oom后便會(huì)panic然后重啟,但為何內(nèi)存不足呢?我們的日志提示還有126M物理頁(yè)處于空閑可用,不應(yīng)該會(huì)進(jìn)入內(nèi)存申請(qǐng)失敗的情況。

細(xì)看可知gfp_mask=0x101cc0,則MIGRATE_MOVABLE未置1,導(dǎo)致ALLOC_CMA未置1,既不允許使用cma_pages,

當(dāng)CMA頁(yè)面不允許使用時(shí),實(shí)際所剩余可申請(qǐng)的頁(yè)面數(shù):free減去free_cma,free_cma提示120多M(高達(dá)實(shí)際物理內(nèi)存一半),所以剩余非遷移屬性的頁(yè)面只剩幾M:

解決措施:

因此除了關(guān)閉panic_on_oom,還應(yīng)該去查查為何free_cma為何可以分配的那么多,而不做最大值限制,通過(guò)啟動(dòng)日志可看出系統(tǒng)CMA的最大限制為128M,如下圖所示:

CMA我們分配竟然達(dá)到了50%物理內(nèi)存,因此將CMA降成64M大小,以釋放64M用于非遷移屬性頁(yè)面申請(qǐng)。通過(guò)uboot傳參cma=64M,可將cma最大值設(shè)置為64M。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 1
收藏 2
關(guān)注 181
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧