摘要:
可重定位文件结构分析1. 文件头使用命令readelf –h vmlinux查看elf文件头:[mszsdtcf49][~/ws/arm_elf_linux/relocate_elf_reader]$ readelf -h vmlinux.oELF Header: Magic: 7f 45 4c 4 阅读全文
摘要:
1.背景 经常性遇到要review一堆commit,这里写了一个能够自动搜索需要自己review的change,然后review +2的方法,当然也可以自定一下,实现其他操作。 2.代码 #! /usr/bin/python import re import urllib import reques 阅读全文
摘要:
1.首先定义自己所需的结构体。 struct my_mapping_struct { struct list_head list; int file; void *virt; struct my_data *md; } 2.定义并初始化一个全局的list head与一把mutex。 static D 阅读全文
摘要:
下面是一个在kernel panic或者oops之后,能够打印更多内存信息的patch,主要用到前面介绍的die notify功能注册oops/painc回调函数。 #include <linux/mm.h> #include <linux/spinlock.h> #include <linux/s 阅读全文
摘要:
最近在做一个panic事后的处理时,需要读取寄存器信息,然后找到对应的物理地址。 然后发现Linux中,已经有实现的类似的功能,现在拿过来做地址有效性判定,感觉还是很不错的。 #include <asm/esr.h> #include <asm/sysreg.h> #include <asm/sys 阅读全文
摘要:
1.背景 最近debug时,需要trace schedule switch的前后进程,所以写了一个event trace的程序。 2.代码 #include <linux/tracepoint.h> #include <trace/events/sched.h> #include <linux/me 阅读全文
摘要:
1. 背景 Ftrace利用汇编时,在每个函数的入口处放一个mcont函数来monitor代码行为,利用这一个特性,可以写一个程序来监控每个函数执行后,系统的memory状态的功能。 2.代码 这里主要是检查0x90000000 ~ 90200000中间2M内存的每个page的0x520处memor 阅读全文
摘要:
debug时,经常会需要打印slub的前一项(内存被前一个slub向后被踩),这里提供一个简单的例子,可以打印当前slub信息,并且返回前一个slub信息,重复调用可以不停的打印slub信息。 static void *_find_prev_slab_and_print_slub(phys_addr 阅读全文
摘要:
使用RCU的CPU失速检测器 本文档首先讨论RCU的CPU停顿检测器可以定位哪些问题,然后讨论可用于微调检测器操作的内核参数和Kconfig选项。最后,本文解释了失速检测器的“splat”格式。 是什么导致RCU CPU停顿警告? 是因为您的内核会打印RCU CPU停止警告。下一个问题是“是什么原因 阅读全文
摘要:
https://www.eclipse.org/tracecompass/ https://www.kernelshark.org/ 阅读全文