亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

常見RAS工具流程分析

2025-06-06 08:25:49
6
0

1. 工具rasdaemon

1.1. 流程分析

Rasdaemon無論是(shi)以(yi)后臺(tai)服(fu)務啟(qi)動,還是(shi)以(yi)前臺(tai)方(fang)式運行,其核(he)心處理流程都是(shi)函數handle_ras_events,該函數通過ftrace機制監聽(ting)每個cpu上的(de)ras事件(jian)。

對應(ying)的(de)監控路徑是/sys/kernel/debug/tracing/instances/rasdaemon/events/

監控范圍包括ras/mc_event、ras/aer_event、ras/non_standard_event、ras/arm_event、mce/mce_record、ras/extlog_mem_event、net/net_dev_xmit_timeout、devlink/devlink_health_report、block/block_rq_error or k/block_rq_complete、ras/memory_failure_event。

ras/mce_record為例,rasdaemon監聽到的,實(shi)際上是內核mce_early_notifier通知處理流程(cheng)輸出的trace數據。

 

當監聽到期望的ras事件后,會基于ftrace的輸出格式,自動對數(shu)(shu)據進(jin)行解(jie)析并(bing)輸出,同時(shi)支持保存到數(shu)(shu)據庫文件(對應(ying)-r啟動參數(shu)(shu))。

命令ras-mc-ctl --errors,可用于查看保存(cun)在數(shu)據庫中的ras事件,示(shi)例如下。

新版本Rasdaemon還支持,基于針對同(tong)一地 址在一定周期(qi)內,連續(xu)出現CE錯誤并超過一定閾值(zhi)時,主動(dong)對該CE內存進行隔離處理。

相關(guan)配置信(xin)息,可通過PAGE_CE_THRESHOLD、PAGE_CE_REFRESH_CYCLE環境變量,在啟動時(shi)傳遞(di)給rasdaemon進程,默(mo)認配置(zhi)閾值每天50次。

2. 工(gong)具edac-util

2.1. 流程分析

Edac-util -r命令可用(yong)于查詢內(nei)核記錄(lu)的(de)內(nei)存(cun)故(gu)(gu)障(zhang)(zhang)(zhang)統計信(xin)息(xi),但只(zhi)能精確到那根DIMM存(cun)在(zai)故(gu)(gu)障(zhang)(zhang)(zhang)以及故(gu)(gu)障(zhang)(zhang)(zhang)的(de)次數,無(wu)法(fa)確認具(ju)體的(de)故(gu)(gu)障(zhang)(zhang)(zhang)位置。

由于(yu)這部分數據未被持(chi)久化,因此edac-util只能查詢,自設備啟動以后發生的內存故障信息。

執行流(liu)程直接遍(bian)歷并讀取(qu)內(nei)核提供(gong)的/sys/devices/system/edac/mc/mcx/*文件,進而獲取(qu)并輸(shu)出內存(cun)故障的ce/uce統計值。

雖然edac-util命令只(zhi)能查(cha)看內存故障的統計值(zhi),但是內核edac機制(zhi)會基于不同的硬(ying)件實現(xian),提供更加詳細的內存故障解碼(ma)信息,并(bing)輸(shu)出到日志文件。

 

同時內核edac機制還會(hui)通過(guo)trace_mc_event事件,將解碼后的故障信息上報出去,這些(xie)信息會(hui)被(bei)rasdaemon監(jian)控并保存。

 

3. 工具mcelog

3.1. 流程分析

Mcelog可用于直接查看或(huo)后臺監控設(she)備的(de)mce問題(ti),其監控信息(xi)可通過日志的(de)方式(shi)輸出到syslog或(huo)指定文件。

除(chu)此之外還支持用戶態(tai)自定(ding)義mce故障(zhang)處理,例(li)如內存隔離、關(guan)閉cpu等,詳見/etc/mcelog/mcelog.conf及相關(guan)trigger處理文(wen)件。

 

Mcelog通過/dev/mcelog和(he)內(nei)核(he)交互,/dev/mcelog內(nei)部維護了(le)一個(ge)緩存(cun)區,用于緩存(cun)已發生的mce信息,并且在(zai)讀(du)取后會(hui)被立即(ji)清理(li)。

Mcelog的(de)數據來源和(he)前面提(ti)到的(de)trace_mce_record、trace_mc_event基(ji)本一樣,都是來源于mce_register_decode_chain通(tong)知鏈。

由(you)于(yu)該(gai)通(tong)知(zhi)鏈由(you)異步work執(zhi)行,再通過(guo)trace或(huo)緩存(cun)區(qu)傳遞(di)到用戶態(tai),因此其執(zhi)行過(guo)程(cheng)不會影響mce的(de)(de)中斷處理(li)流程(cheng)。同時在嚴重的(de)(de)mce場(chang)景,也可能(neng)還沒執(zhi)行設(she)備就復(fu)位了,因此記錄的(de)(de)信息(xi)可能(neng)存(cun)在缺失(shi)。

 

 

除(chu)此之前(qian)mcelog還支持從bios erst中讀取mce信(xin)息(xi),這部(bu)分(fen)信(xin)息(xi)通常(chang)在mce發生后,在內(nei)核的mce_panic流(liu)程中,被(bei)保存到bios erst區域。

同時(shi)mcelog支持通過(guo)軟(ruan)件模擬mce錯誤,但本質上是基于mce-inject.ko的功(gong)能,而(er)mce-inject.ko自身就提供了debugfs注(zhu)入接口。其故(gu)障注(zhu)入原理是通過(guo)nmi觸發對應的cpu進入特(te)定處(chu)理流(liu)程,并(bing)調用do_machine_check處(chu)理注(zhu)入的軟(ruan)件mce故(gu)障信息(xi)。

4. 分析總結

mce領域rasdaemon、edac-util、mcelog獲(huo)取的數據同源,都來自內核(he)mce解碼通知鏈。

其中rasdaemon監控范圍最(zui)全,包括(kuo)除mce外的多種硬件故障,同時還支持數據(ju)持久化(hua)功能。

其中edac-util只能查看內核edac機制保存的mce故(gu)障統計(ji)信息,且(qie)該(gai)功能已被rasdaemon涵(han)蓋。

其中mcelog支(zhi)持自定(ding)義(yi)(yi)(yi)mce故(gu)障(zhang)(zhang)處(chu)理(li),但未看到(dao)自定(ding)義(yi)(yi)(yi)處(chu)理(li)的明顯必要(yao)性,且現有自定(ding)義(yi)(yi)(yi)處(chu)理(li)功能已被rasdaemon涵蓋。同(tong)時mcelog還支(zhi)持從(cong)bios erst中讀取mce故(gu)障(zhang)(zhang)信息,可考慮移植該(gai)功能到(dao)rasdaemon。

z上所述(shu),建議選型rasdaemon作為(wei)系(xi)統默認ras監控(kong)服務,同時這也(ye)是(shi)業界(jie)的(de)演進趨(qu)勢。

0條評論
0 / 1000
c****y
4文章數
0粉絲數
c****y
4 文章(zhang) | 0 粉絲
c****y
4文章數
0粉絲(si)數
c****y
4 文(wen)章 | 0 粉絲(si)
原(yuan)創

常見RAS工具流程分析

2025-06-06 08:25:49
6
0

1. 工(gong)具rasdaemon

1.1. 流(liu)程分析(xi)

Rasdaemon無(wu)論(lun)是以(yi)后臺(tai)服務啟動,還是以(yi)前臺(tai)方式運行,其核心處理流程都是函數handle_ras_events,該函數通(tong)過ftrace機(ji)制監聽每個cpu上的ras事件。

對應的監控(kong)路徑是/sys/kernel/debug/tracing/instances/rasdaemon/events/

監(jian)控(kong)范圍包括ras/mc_event、ras/aer_event、ras/non_standard_event、ras/arm_event、mce/mce_record、ras/extlog_mem_event、net/net_dev_xmit_timeout、devlink/devlink_health_report、block/block_rq_error or k/block_rq_complete、ras/memory_failure_event。

ras/mce_record為例(li),rasdaemon監(jian)聽到的,實際(ji)上是內核(he)mce_early_notifier通知(zhi)處理(li)流(liu)程(cheng)輸出的trace數據(ju)。

 

當監聽到期望的ras事件后,會基于(yu)ftrace的(de)輸出(chu)(chu)格(ge)式,自動對(dui)數據進行解析并(bing)輸出(chu)(chu),同時支持保存到數據庫文件(對(dui)應-r啟(qi)動參數)。

命令ras-mc-ctl --errors,可(ke)用(yong)于查看保存在數(shu)據庫中的ras事件,示例如下。

新(xin)版本Rasdaemon還支持,基于針對同一地 址(zhi)在一定(ding)周期內(nei),連續(xu)出(chu)現CE錯誤并超過(guo)一定(ding)閾值(zhi)時,主動對該CE內(nei)存(cun)進(jin)行(xing)隔離(li)處理。

相關配置信(xin)息,可(ke)通過PAGE_CE_THRESHOLD、PAGE_CE_REFRESH_CYCLE環境變(bian)量,在啟(qi)動時傳(chuan)遞給rasdaemon進程,默認配置閾值每天50次。

2. 工具edac-util

2.1. 流程分析

Edac-util -r命令可用于查詢內核記(ji)錄的(de)(de)內存故(gu)障(zhang)統計信息,但只能(neng)精確到那根DIMM存在故(gu)障(zhang)以及故(gu)障(zhang)的(de)(de)次數,無法確認具(ju)體(ti)的(de)(de)故(gu)障(zhang)位置(zhi)。

由于這部(bu)分數據未(wei)被持久化,因(yin)此edac-util只能查詢,自設備(bei)啟動以后發生的內存故障(zhang)信息。

執(zhi)行流(liu)程直接遍歷并(bing)讀取內核提供的/sys/devices/system/edac/mc/mcx/*文件,進而獲取并輸出(chu)內存故障的ce/uce統計值。

雖然edac-util命令只能查看內(nei)存故障的統計值,但是內(nei)核edac機制會(hui)基(ji)于不同(tong)的硬件實現,提供更(geng)加(jia)詳(xiang)細(xi)的內(nei)存故障解碼信(xin)息,并輸出到日(ri)志文件。

 

同時內(nei)核edac機制還會通過trace_mc_event事件(jian),將解(jie)碼后(hou)的(de)故障(zhang)信息上報出去,這些信息會被rasdaemon監控(kong)并保存。

 

3. 工具(ju)mcelog

3.1. 流(liu)程分(fen)析

Mcelog可用于直(zhi)接查看或(huo)后臺監控設備的(de)mce問題,其(qi)監控信息(xi)可通過(guo)日志的(de)方式輸出到syslog或(huo)指(zhi)定文件。

除(chu)此之外還(huan)支持用(yong)戶態(tai)自定義mce故障(zhang)處(chu)理,例如內存隔離(li)、關(guan)閉cpu等(deng),詳(xiang)見/etc/mcelog/mcelog.conf及相關(guan)trigger處(chu)理文件。

 

Mcelog通(tong)過/dev/mcelog和內核交互,/dev/mcelog內(nei)部維護了一個緩存區(qu),用(yong)于緩存已發生的mce信息(xi),并且在(zai)讀取后會(hui)被立即清(qing)理(li)。

Mcelog的(de)數(shu)據來源(yuan)和前面提到(dao)的(de)trace_mce_record、trace_mc_event基本一樣,都是(shi)來源(yuan)于mce_register_decode_chain通(tong)知鏈。

由于該(gai)通知鏈由異步(bu)work執行(xing),再(zai)通過trace或緩存區傳(chuan)遞到用(yong)戶(hu)態,因(yin)此其執行(xing)過程不會影(ying)響(xiang)mce的(de)中(zhong)斷處理流程。同時在(zai)嚴(yan)重的(de)mce場景,也可能還(huan)沒(mei)執行(xing)設備就復位了,因(yin)此記(ji)錄(lu)的(de)信(xin)息可能存在(zai)缺失。

 

 

除此之前mcelog還支持從bios erst中讀取mce信息(xi),這部(bu)分信息(xi)通常(chang)在mce發生后(hou),在內核的mce_panic流程中,被保存到(dao)bios erst區域。

同時(shi)mcelog支持通過軟件模擬(ni)mce錯(cuo)誤,但本(ben)質上是(shi)基于mce-inject.ko的(de)功能(neng),而mce-inject.ko自身就(jiu)提供了debugfs注(zhu)入接(jie)口。其故障注(zhu)入原理(li)是(shi)通過nmi觸發(fa)對應的(de)cpu進(jin)入特定處理(li)流程(cheng),并調用do_machine_check處理(li)注(zhu)入的(de)軟件mce故障信(xin)息。

4. 分(fen)析總結

mce領域rasdaemon、edac-util、mcelog獲取(qu)的數據同源(yuan),都(dou)來自內核mce解碼(ma)通知鏈。

其(qi)中rasdaemon監(jian)控范圍(wei)最全,包括除mce外的多種硬件故(gu)障,同時還支持數據持久化功能。

其中edac-util只(zhi)能查看內核(he)edac機制保存(cun)的mce故障統計信息,且該功能已被rasdaemon涵蓋。

其中mcelog支(zhi)持自定(ding)(ding)義mce故障處理(li),但未看(kan)到自定(ding)(ding)義處理(li)的明(ming)顯必要性,且現有自定(ding)(ding)義處理(li)功能已(yi)被rasdaemon涵蓋。同時mcelog還支(zhi)持從bios erst中讀(du)取mce故障信息,可考慮移植該功能到rasdaemon。

z上所述(shu),建議選型rasdaemon作為系(xi)統默(mo)認ras監控(kong)服務(wu),同時(shi)這也是業(ye)界(jie)的演進趨勢。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0