Android Linux apanic机制及其与较新的ram_控制台/持久性ram机制的区别

Android Linux apanic机制及其与较新的ram_控制台/持久性ram机制的区别,android,linux-kernel,kernel,linux-device-driver,device-driver,Android,Linux Kernel,Kernel,Linux Device Driver,Device Driver,我正在研究Linux上发生内核死机(OOPS)时的不同日志记录机制。到目前为止,我从网上搜索得到了以下信息: apanic是完成工作的一种旧机制 ram_控制台/持久性_ram是一种新机制 在这方面,有人能告诉我以下几点吗 旧的apanic机制是什么,在高层,它是如何工作的 ? 为什么apanic机制被弃用,而支持ram_控制台/持久性_ram机制 新的ram_控制台/持久性ram机制带来了哪些优势 ram_控制台/持久化ram在功能上与旧的apanic方法有什么不同 我只是在寻找指针和

我正在研究Linux上发生内核死机(OOPS)时的不同日志记录机制。到目前为止,我从网上搜索得到了以下信息:

  • apanic是完成工作的一种旧机制
  • ram_控制台/持久性_ram是一种新机制
在这方面,有人能告诉我以下几点吗

  • 旧的apanic机制是什么,在高层,它是如何工作的 ?
  • 为什么apanic机制被弃用,而支持ram_控制台/持久性_ram机制
  • 新的ram_控制台/持久性ram机制带来了哪些优势
  • ram_控制台/持久化ram在功能上与旧的apanic方法有什么不同
我只是在寻找指针和高层次的答案,从某种意义上说,这是我可以进一步研究机制的方向。如能提供这方面的任何相关信息,我将不胜感激


谢谢

请在下面找到您的一系列问题的答案

旧的apanic机制是什么,在高层次上,它是如何工作的?

这是安卓用来记录消息的机制。它将日志消息写入NAND的mtd分区中的某个特定偏移量。内核模块将名为“apanic”的文件导出到“debugfs”。可以使用下面的命令将debugfs装载到某个目录上。“mount-t debugfs none/sys/kernel/debug”,需要在linux内核上启用debugfs配置。 有关这方面的更多信息,请浏览下面链接中的源代码

为什么apanic机制被弃用,取而代之的是ram\u控制台/持久性\u ram机制?

此apanic驱动程序不是linux内核的一部分。它是针对android的。它在最新版本的androids中被弃用。原因可能是当内核OPP发生时,写入nand分区可能不是个好主意。由于nand_写入速度慢且写入周期有限。这只是我的意见。但我不确定实际原因

新的ram_控制台/持久性ram机械装置带来了哪些优势?

它也是android用来记录控制台消息的日志机制。在这里,日志消息进入RAM区域。如果是持久内存,日志消息将进入ram的持久内存区域(将被保留)。此驱动程序模块在proc目录中创建一个名为“last_kmsg”的文件。如果内核OOP并停止引导,则可以在下次引导时读取此消息。有关更多信息,请浏览下面链接中给出的源代码

ram\u控制台/持久性\u ram在功能上与旧的apanic方法有什么不同?

前者基于ram,后者基于mtd

在最新的实验性安卓源代码中,我没有找到两者的源代码。不知道原因

希望我澄清你的疑问

问候,

尤瓦拉伊