中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

kdump机制

Linux内核问题因其容易导致整个系统崩溃且难以复现,一般情况下很难定位分析解决。同时,内核调试的特殊性引发了一系列相关问题。常用的打印、查询、单步跟踪调试手段不适用于内核问题定位。而内核崩溃转储机制,可以有效地收集问题出现时的现场信息,做后续分析,被广泛运用于内存问题定位上。内核崩溃转储机制的种类包括LKCD、Diskdump、Netdump、Mkdump、kdump等。kdump是目前主流内核崩溃转储机制,本手册也推荐使用kdump用于内核问题定位。

kdump机制在Linux 2.6.38被ARM平台内核主线接纳,它是通过两个内核实现的,在正常使用的系统内核外,通过启动另一个捕获内核捕获系统内核信息的方法,来进行转储操作。具体流程如图1所示。

图1 kdump机制
  1. 系统内核正常启动,包括硬件自检、bootloader加载等常规过程,并预留内存空间给捕获内核。
  2. 加载捕获内核到预留内存空间。
  3. 系统发生崩溃,触发panic,捕获内核启动。(捕获内核采用的是kexec机制,可以跳过硬件自检的环境,快速启动内核。)
  4. 捕获内核通过/proc/vmcore内存镜像文件,收集系统内核信息。
  5. 将系统内核信息经过压缩,生成转储文件,写到磁盘中。