RM Console的log机制

原文:cnblogs.com/bobfly1984/p/14142094.html

last_kmsg和ram console

首先,在kernel里面通过printk吐log的时候会是下面的一个过程:

  1. printk会将信息格式化到kernel log buffer里面去。

  2. 然后将这些格式化信息送到console去,在我们的系统里面有两个console,一个是uart console,一个是ram console。uart console里面的内容呢就是我们看到的uart log了。

那ram console是如何工作的呢?

  1. RAM Console是位于Internal SRAM上面的一个小的buffer。

  2. 结合上图与下图我们可以知道,系统运行的时候kernel log将不会被记录在RAM Console里面。

  3. 一旦发生了重启,log将会停止记录到RAM console,直到RAM Console再次初始化好。

  4. 在RAM Console初始化的时候会将buffer里面原有的数据做备份,拷贝到另外一个buffer,这个buffer的数据我们可以通过/proc/last_kmsg来访问。

那结论是什么呢

  1. RAM Console是一种log机制,它可以记录重启前最后时刻的一段log,来说明系统最后做了哪些事情。

  2. 只要是重启,不管是异常重启还是通过adb reboot,或者通过菜单重启,都会有last_kmsg,这是一种log机制,与exception机制没有直接联系。

但是这里面也有一些限制

  1. 由于重启之后DRAM数据会丢失,所以只能将RAM Console放到Internal SRAM。

  2. 但是由于Internal SRAM空间有限,只能划分出7KB~9KB的空间给RAM Console使用,所以能够记录的log是很短的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值