免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
123下一页
最近访问板块 发新帖
查看: 21209 | 回复: 22

【译】linux-2.6.31内核文档系列 [复制链接]

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2009-12-21 14:47 |显示全部楼层
翻译了一下kdump.txt,总算弄明白了两个kernel的关系
发出来,希望对大家有用


kdump主页:http://lse.sourceforge.net/kdump/
                  里面有让Debian支持mkinitrd的描述

crash主页:http://people.redhat.com/~anderson/

----------------
Godbach:
将openspace兄翻译的内核文档都整理到该帖子中,便于大家学习,也希望openspace 兄随后的文档也可以继续追加到本贴中。
感谢openspace兄的无私分享!


[ 本帖最后由 Godbach 于 2010-1-3 11:01 编辑 ]

【linux-2.6.31】kdump - 基于kexec的崩溃转储机制.pdf

199.5 KB, 下载次数: 1507

linux-2.6.31-探秘Linux SysRq魔法键.pdf

202.94 KB, 下载次数: 1130

linux-2.6.31-Kernel Probes.pdf

308.63 KB, 下载次数: 1357

【linux-2.6.31】内核编译指南.pdf

222.56 KB, 下载次数: 2395

【linux-2.6.31】如何报bug.pdf

117.22 KB, 下载次数: 1078

【linux-2.6.31】kbuild.pdf

553.12 KB, 下载次数: 1506

论坛徽章:
0
发表于 2009-12-21 16:39 |显示全部楼层
好,仔细看看,之前看代码coredump多是printk打印出来。或者直接写文件就行了。

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2009-12-21 17:44 |显示全部楼层
看了kdump - A kexec based dumping mechanism (Paper) - Vievek Goyal et al, OLS 2005这篇paper
简单做个总结

1. crash capture kernel的位置是配置时硬编码指定的,相应的production kernel启动时要通过crashkernel参数将对应内存保留出来

2. crash capture kernel可以直接加载到保留内存区域,准备崩溃时派上用场

3. crash capture kernel的大小有个限制,kexec工具通过memmap=exactmap参数限制capture kernel的大小,该操作是自动进行的,
    用户不需要关心
    这样就可以根据保留区域的起始位置和内核大小判断出backup region的位置

4. crash capture kernel启动时并没有关闭设备,这表示DMA可能还在运行,为避免冲突,不使用前16MB启动crash capture内核
    但是还需要前640KB的信息,这部分信息会复制到backup region
    具体何时复制并不是太清楚,但是由于production kernel配置了kexec支持,又使用了crashkernel参数,又知道crash kernel大小的上限,
    这就可以计算出backup region的位置,可以在系统启动后就先将启动需要的系统信息等复制到backup region;但是论文中描述的backup region大小至少为16M
    (参考2.2A Brief History of Kdump Development),要是在系统启动时就复制会丢失掉系统崩溃时的该部分的信息;前1MB的物理布局不是太清楚,
    猜想虽然linux启动时覆盖一部分,但是启动需要的那部分关于系统硬件的信息没有被破坏,后来也没有被覆盖,因此可以在系统崩溃时复制。实际根据论文中3.3节
    3.3 Post Crash Processing的描述,复制到backup region应该是在系统崩溃后进行的

5. kexec使用的内存不必连续,但是/proc/vmcore使用的内存要求连续,这样kdump使用的也就是连续内存了

6. CPU寄存器信息以ELF note section format存放,每个CPU状态信息占用1KB

7. 崩溃时系统执行关闭操作
         ->保存CPU状态(每个CPU占用1KB)
                  ->purgatory代码进行完整性检测并复制前640KB信息到backup region
                         ->capture kernel执行
    这里感觉论文中描述的有些混乱,前面讲要复制16MB,后面又只提到复制前640KB(3.3 Post Crash Processing)。姑且理解为着重强调吧

8. 系统映像编码为ELF Core Header进行保存,这样既压缩了存储,又便于根据ELF格式信息进行调试

9. ELF core header包含处理器寄存器信息、RAM布局信息和backup region;RAM布局信息从/proc/iomem中获取
          类型PT_LOAD的header描述内存信息,包括物理内存布局和线性区域的信息
          PT_NOTE类型的header描述CPU状态信息
          PT_LOAD类型的header描述backup region信息
    (kdump时系统好像变忙了,估计要对内核映像和内存信息进行细致分析;具体这部分信息如何构造估计要好好看看实现代码了。
      我这里只是为了了解kdump的工作流程,哪位要是了解可以给讲讲)

10. crash capture kernel启动后获取保留的映像信息,可以通过/proc/vmcore或者/dev/oldmem访问

[ 本帖最后由 openspace 于 2009-12-21 18:24 编辑 ]
kdump.GIF
CPU.GIF

论坛徽章:
0
发表于 2009-12-29 15:16 |显示全部楼层
赞,好久不来,落伍了!

论坛徽章:
0
发表于 2009-12-30 08:59 |显示全部楼层
这个我怎么才能给他在我的个人账户中收藏呢

论坛徽章:
0
发表于 2010-01-01 21:08 |显示全部楼层
我的UBUNTU中有一个内核是31,是我更新之后的,但是开机的时侯,提示还有一个30的老一点的内核,我想能不能把它去掉呢,没有去掉,总是感觉有点占空间,请你们帮忙说明一下,谢谢了!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-01-03 11:02 |显示全部楼层
将openspace兄翻译的内核文档,全都整理到该贴中了,欢迎大家交流。

论坛徽章:
0
发表于 2010-01-04 10:14 |显示全部楼层
哇~~,2010年大礼包啊~

觉得版上的大牛门总结得真是又好又快~,很强大

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-01-04 10:22 |显示全部楼层

回复 #8 hongmy525 的帖子

只要敢于把自己的学习总结拿上来分享,都会受到欢迎的

论坛徽章:
0
发表于 2010-01-04 13:11 |显示全部楼层
万分感谢分享~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP