1. pstore
pstore是persistent storage的縮寫。核心發生異常時如果能將日誌等資訊儲存下來不丟失,那麼就可以通過這些資訊來定位問題。不同的平台可以提供的儲存位置不同,例如有些平台支援硬碟,有些不支援。除了平台差異,異常型別也決定了在發生異常時該儲存位置是否還可用。
pstore的目標是提供一套通用的介面用來儲存異常資訊。pstore以檔案系統的形式提供使用者空間介面,可以通過mount命令掛載到指定目錄下邊,如***pstore,那麼儲存的資訊將以檔案的形式出現在該目錄下,可以使用檔案讀操作獲取除錯資訊,通過刪除操作清除除錯資訊。
在核心中使用pstore前需要首先初始化乙個pstore_info型別的結構體變數,然後呼叫int pstore_register(struct pstore_info *)註冊。
pstore_info結構體中有些變數可以不需要賦值,但是讀寫,刪除用到的函式指標需要賦值。
pstore在核心中的開關是config_pstore,在2.6.39版本中第一次合入主線,3.10.40中的ramoops使用的就是pstore機制。pstore提供的是一套可擴充套件的機制,目前提供的型別包括以下四種:
pstore_type_dmesg表示核心日誌,pstore_type_mce表示硬體錯誤,pstore_type_console表示控制台輸出,pstore_type_ftrace表示函式呼叫序列。
2. ramoops
ramoops指的是採用ram儲存oops資訊的乙個功能,這個功能最開始不是基於pstore實現的,在3.10.40中,它已經採用pstore機制實現了,在核心開關中用3個開關控制:pstore_console控制是否儲存控制台輸出,pstore_ftrace控制是否儲存函式呼叫序列,pstore_ram控制是否儲存panic/oops資訊。
使用ramoops功能也很簡單,只要開啟開關,註冊乙個名字ramoops的platform_device就可以了,platform_data要指向乙個型別為ramoops_platform_data的變數位址。
ramoops_platform_data結構體中mem_size表示總共的ram大小為多大,mem_address表示ram的起始實體地址,record_size表示記錄oops/panic單次記錄的buffer大小,console_size表示控制台輸出buffer的大小,ftrace_size表示函式呼叫序列buffer的大小,所有這些buffer都是整個mem_size的一部分,首先預留console_size和ftrace_size,剩下的空間能放幾個record_size就儲存幾次的oops/panic記錄,在產生oops/panic時後邊的記錄會沖掉前邊的記錄,這個和console/ftrace都是一樣的,都是保留最新的。
dump_oops為1表示oops和panic都記錄,為0表示僅記錄panic。
3. 使用說明
控制台輸出位於pstore目錄下的console-ramoops檔案中,因為採用console機制,該檔案中的日誌資訊也受printk level控制,並不一定是全的。
oops/panic日誌位於pstore目錄下的dmesg-ramoops-x檔案中,根據緩衝區大小可以有多個檔案,x從0開始。
函式呼叫序列日誌位於pstore目錄下的ftrace-ramoops檔案中。
4. **說明
在kernel3.10.40中,pstore和ramoops的**都位於/kernel/fs/pstore/目錄。ramoops初始化函式位於ram.c中:postcore_initcall(ramoops_init);使用postcore_initcall的好處是更早,這樣可以更早的記錄異常。
ramoops pstore簡要說明
1.pstore pstore是persistent storage的縮寫。核心發生異常時如果能將日誌等資訊儲存下來不丟失,那麼就可以通過這些資訊來定位問題。不同的平台可以提供的儲存位置不同,例如有些平台支援硬碟,有些不支援。除了平台差異,異常型別也決定了在發生異常時該儲存位置是否還可用。pstor...
android application簡要類(一)
1.至android應用級事件,如廣播的實現中低聲回應。2.傳遞應用程式元件之間的物體 全域性變數 3.管理和維護多個應用程式元件使用的資源。返回應用程式例項 return singleton override public void oncreate android allowbackup tru...
Asp HTTP 簡要介紹
asp http 簡要介紹 特性 1 get post head 請求方法 2 response 回應 頭可見 3 accept 接受 頭可修改 4 超時時間可調整 5 支援proxy 6 自定義客戶 頭 7 自定義posts的內容 型別頭 8 重定向 9 支援驗證內容 10 從url獲得檔案 包括...