linux pstore驱动分析和调试

1.简介

pstore(persistent storage)

主要用于存储内核异常时的log信息。实现方式是,管理一块“非易失性的存储空间”,如不断电的RAM或外部存储,当系统异常时,将log信息写到pstore管理的存储空间,直到下一次系统正常时,在将log读出来,以文件形式提供给用户使用。

ramoops指的是采用ram保存oops信息的一个功能,在内核开关中用4个开关控制:PSTORE_CONSOLE控制是否保存控制台内核输出,PSTORE_PMSG控制是否保存控制台用户输出,PSTORE_FTRACE控制是否保存函数调用序列,PSTORE_RAM控制是否保存panic/oops信息。

pstore简单来说就是一个小文件系统。主要是读取Android设备内核日志时会用到该模块。

 

2.整体框架

代码路径:fs/pstore

很简单,一共就6个文件,不做过多分析

框架如下

 

 

3.配置

3.1.dts

32bit操作系统如下配置

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
 
		ramoops_mem@90008000 {
			compatible = "ramoops_mem";
			reg = <0x90008000 0x100000>;
			record-size = <0x0 0x20000>;
			console-size = <0x0 0x20000>;
			ftrace-size = <0x0 0x20000>;
			pmsg-size = <0x0 0x20000>;
		};
	};
	
	ramoops {
		memory-region = <&reserved-memory>;
		status = "okay";
	};

由于dts指定的是物理地址,如果内核地址为0x80008000那么可以把pstore地址配置为0x90008000,留出256M空间给内核使用。reg这么配置是32位。每个日志是128KB,总大小是1M,最多可有8个。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值