加餐 | 我是如何使用tracepoint来分析内核Bug的?
该思维导图由 AI 生成,仅供参考
炫技般存在的 tracepoint 内核源码
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何使用tracepoint来分析内核bug,并分享了作者在具体案例中的经验和技巧。作者首先强调了对tracepoint和ftrace的推崇,并详细描述了内存分配慢速路径失败的可能情况,包括特殊的GFP flags、进程自身的状态、以及reclaim和compact无法满足需求。通过一个具体的内核bug案例,读者可以了解到作者对tracepoint的熟练运用和对内核bug分析的经验,以及如何利用tracepoint来解决类似问题。此外,文章还介绍了如何使用tracepoint分析生产环境,包括追踪direct compact事件和结合其他手段查看是否进行了compact,以及追踪direct reclaim事件来查看内存回收情况。最终,通过追踪数据的分析,作者得出了内存分配失败的结论。总的来说,本文通过具体案例和详细分析,展示了作者对tracepoint的熟练运用和对内核bug分析的经验,为读者提供了一种解决类似问题的思路和方法。文章内容丰富,对于需要深入了解内核bug分析的读者具有很高的参考价值。
《Linux 内核技术实战课》,新⼈⾸单¥59
全部留言(5)
- 最新
- 精选
- KennyQ后续能不能再开个课程专门讲讲 tracepiont,kprobe和ePBF?网上的内容都太碎片化,不成体系。 作为一个背锅的自身运维工程狮,基本经常要和开发刚正面,急需这方面的知识。
作者回复: 这些调试手段的使用技巧还是很多的 用好了这些手段各种疑难问题都可以迎刃而解。目前还没有专门讲这些调试手段的打算。
2020-10-113 - 我来也# 这几个值合并起来是 0x100450 不是 0x104050呀。 此时的 GFP flags 是 0x104050,对应于下面这几项: #define ___GFP_WAIT 0x10u #define ___GFP_IO 0x40u #define ___GFP_REPEAT 0x400u #define ___GFP_KMEMCG 0x100000u
作者回复: 嗯 不是gfp_repeat.,是gfp_comp,这是order为5得复合页,跟下面tracepoint输出是一致的。另外,下面的截图里面截断了gfp_kmemcg,没有显示出来。
2020-10-061 - xianhai能不能讲讲zone的概念? 为什么要右移5?(205324kB >> 5)
作者回复: 关于zone,它的大致作用是,一个node上有不同的zone,之所以要区分zone,是为了满足不同的内存申请需求以及更好的管理物理内存:比如highmem是内核不能直接映射的;dma则主要给一些特殊外设使用的;对于用户进程而言,默认申请的都是normal zone;movable zone则是为了优化内存碎片。 右移5的目的是看看这么大的内存对应有多少个order为5的复合页。
2020-10-062 - 镜除了cpu篇都大概看完了,老师功力深厚,点赞👍2021-10-08
- Geek_e4c979tracepoint这些一会define一会undef咋理解呀2021-04-21