性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

背景:

平臺:stm32mp151平臺

什么是OTA?

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

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

OTA下載方式:

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

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

現(xiàn)象描述

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

死機重啟分析:

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

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

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

2. 為何free頁面很多但是還是會進入oom?

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

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

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

解決措施:

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

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

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